; ModuleID = '/home/hakta/Documents/vector_mult/solution4/.autopilot/db/a.o.2.bc' 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" @vector_mult.str = internal unnamed_addr constant [12 x i8] c"vector_mult\00" ; [#uses=1 type=[12 x i8]*] @memcpy_OC_tempB_OC_B.str = internal unnamed_addr constant [15 x i8] c"memcpy.tempB.B\00" ; [#uses=1 type=[15 x i8]*] @memcpy_OC_tempA_OC_A.str = internal unnamed_addr constant [15 x i8] c"memcpy.tempA.A\00" ; [#uses=1 type=[15 x i8]*] @memcpy_OC_result_OC_tempResult_OC_gep.str = internal unnamed_addr constant [29 x i8] c"memcpy.result.tempResult.gep\00" ; [#uses=1 type=[29 x i8]*] @burstwrite_OC_region.str = internal unnamed_addr constant [18 x i8] c"burstwrite.region\00" ; [#uses=8 type=[18 x i8]*] @burstread_OC_region.str = internal unnamed_addr constant [17 x i8] c"burstread.region\00" ; [#uses=16 type=[17 x i8]*] @.str9 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @.str7 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @.str6 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @.str5 = private unnamed_addr constant [17 x i8] c"vector_mult_loop\00", align 1 ; [#uses=3 type=[17 x i8]*] @.str4 = private unnamed_addr constant [6 x i8] c"slave\00", align 1 ; [#uses=3 type=[6 x i8]*] @.str3 = private unnamed_addr constant [6 x i8] c"m_axi\00", align 1 ; [#uses=3 type=[6 x i8]*] @.str2 = private unnamed_addr constant [10 x i8] c"s_axilite\00", align 1 ; [#uses=1 type=[10 x i8]*] @.str1 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 ; [#uses=22 type=[1 x i8]*] ; [#uses=0] define void @vector_mult([2 x i128]* %A, [2 x i128]* %B, [2 x i128]* %result) { call void (...)* @_ssdm_op_SpecBitsMap([2 x i128]* %B), !map !20 call void (...)* @_ssdm_op_SpecBitsMap([2 x i128]* %A), !map !41 call void (...)* @_ssdm_op_SpecBitsMap([2 x i128]* %result), !map !54 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @vector_mult.str) nounwind call void @llvm.dbg.value(metadata !{[2 x i128]* %A}, i64 0, metadata !67), !dbg !71 ; [debug line = 4:22] [debug variable = A] call void @llvm.dbg.value(metadata !{[2 x i128]* %B}, i64 0, metadata !72), !dbg !73 ; [debug line = 4:32] [debug variable = B] call void @llvm.dbg.value(metadata !{[2 x i128]* %result}, i64 0, metadata !74), !dbg !75 ; [debug line = 4:42] [debug variable = result] call void (...)* @_ssdm_op_SpecInterface(i32 0, [10 x i8]* @.str2, i32 0, i32 0, [1 x i8]* @.str1, i32 0, i32 0, [1 x i8]* @.str1, [1 x i8]* @.str1, [1 x i8]* @.str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @.str1, [1 x i8]* @.str1) nounwind, !dbg !76 ; [debug line = 5:1] call void (...)* @_ssdm_op_SpecInterface([2 x i128]* %result, [6 x i8]* @.str3, i32 0, i32 0, [1 x i8]* @.str1, i32 0, i32 32, [1 x i8]* @.str1, [6 x i8]* @.str4, [1 x i8]* @.str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @.str1, [1 x i8]* @.str1) nounwind call void (...)* @_ssdm_op_SpecInterface([2 x i128]* %B, [6 x i8]* @.str3, i32 0, i32 0, [1 x i8]* @.str1, i32 0, i32 32, [1 x i8]* @.str1, [6 x i8]* @.str4, [1 x i8]* @.str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @.str1, [1 x i8]* @.str1) nounwind call void (...)* @_ssdm_op_SpecInterface([2 x i128]* %A, [6 x i8]* @.str3, i32 0, i32 0, [1 x i8]* @.str1, i32 0, i32 32, [1 x i8]* @.str1, [6 x i8]* @.str4, [1 x i8]* @.str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @.str1, [1 x i8]* @.str1) nounwind br label %burst.rd.header.0 burst.rd.header.0: ; preds = %burst.rd.body.0_ifconv, %0 %"tempA[1][3]" = phi i32 [ undef, %0 ], [ %"tempA[1][3].2", %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %"tempA[1][2]." = phi i32 [ undef, %0 ], [ %"tempA[1][3].6", %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %"tempA[1][1]." = phi i32 [ undef, %0 ], [ %"tempA[1][3].10", %burst.rd.body.0_ifconv ] ; [#uses=2 type=i32] %"tempA[1][3].7" = phi i32 [ undef, %0 ], [ %"tempA[1][3].8", %burst.rd.body.0_ifconv ] ; [#uses=2 type=i32] %"tempA[0][3]" = phi i32 [ undef, %0 ], [ %"tempA[0][3].2", %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %"tempA[0][2]." = phi i32 [ undef, %0 ], [ %"tempA[0][3].6", %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %"tempA[0][1]." = phi i32 [ undef, %0 ], [ %"tempA[0][3].10", %burst.rd.body.0_ifconv ] ; [#uses=2 type=i32] %"tempA[0][3].7" = phi i32 [ undef, %0 ], [ %"tempA[0][3].8", %burst.rd.body.0_ifconv ] ; [#uses=2 type=i32] %indvar = phi i4 [ 0, %0 ], [ %indvar.next.3, %burst.rd.body.0_ifconv ] ; [#uses=4 type=i4] %indvar.cast = trunc i4 %indvar to i3 ; [#uses=1 type=i3] %1 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) ; [#uses=0 type=i32] %exitcond1 = icmp eq i4 %indvar, -8 ; [#uses=1 type=i1] br i1 %exitcond1, label %burst.rd.header5.0.preheader, label %burst.rd.body.0_ifconv burst.rd.header5.0.preheader: ; preds = %burst.rd.header.0 %"tempA[0][0].01.lcssa" = phi i32 [ %"tempA[0][3].7", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[0][1].02.lcssa" = phi i32 [ %"tempA[0][1].", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[0][2].03.lcssa" = phi i32 [ %"tempA[0][2].", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[0][3].0.lcssa" = phi i32 [ %"tempA[0][3]", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[1][0].04.lcssa" = phi i32 [ %"tempA[1][3].7", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[1][1].05.lcssa" = phi i32 [ %"tempA[1][1].", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[1][2].06.lcssa" = phi i32 [ %"tempA[1][2].", %burst.rd.header.0 ] ; [#uses=2 type=i32] %"tempA[1][3].0.lcssa" = phi i32 [ %"tempA[1][3]", %burst.rd.header.0 ] ; [#uses=2 type=i32] br label %burst.rd.header5.0 burst.rd.body.0_ifconv: ; preds = %burst.rd.header.0 %burstread.rbegin = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %2 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %A, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @.str6) call void (...)* @_ssdm_op_SpecLoopName([15 x i8]* @memcpy_OC_tempA_OC_A.str) %tmp.cast = trunc i4 %indvar to i3, !dbg !78 ; [#uses=1 type=i3] [debug line = 6:2] %tmp.1 = lshr exact i3 %tmp.cast, 2, !dbg !78 ; [#uses=1 type=i3] [debug line = 6:2] %tmp.2 = zext i3 %tmp.1 to i64, !dbg !78 ; [#uses=1 type=i64] [debug line = 6:2] %A.addr = getelementptr [2 x i128]* %A, i64 0, i64 %tmp.2, !dbg !78 ; [#uses=1 type=i128*] [debug line = 6:2] %A.load = load i128* %A.addr, align 8, !dbg !78 ; [#uses=4 type=i128] [debug line = 6:2] %"tempA[0][3].11" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %A.load, i9 0, i9 31), !dbg !78 ; [#uses=3 type=i32] [debug line = 6:2] %newIndex = lshr exact i3 %indvar.cast, 1 ; [#uses=1 type=i3] %newIndex106.t = trunc i3 %newIndex to i2 ; [#uses=3 type=i2] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].11"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].11"}, i64 0, metadata !81), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][0]] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].11"}, i64 0, metadata !82), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][2]] %sel_tmp = icmp eq i2 %newIndex106.t, -2 ; [#uses=4 type=i1] %"tempA[0][3].4" = select i1 %sel_tmp, i32 %"tempA[0][3]", i32 %"tempA[0][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].4"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %sel_tmp2 = icmp eq i2 %newIndex106.t, 0 ; [#uses=6 type=i1] %"tempA[0][3].1" = select i1 %sel_tmp2, i32 %"tempA[0][3]", i32 %"tempA[0][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].1"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %"tempA[0][3].5" = select i1 %sel_tmp, i32 %"tempA[0][3].11", i32 %"tempA[0][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].5"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %"tempA[0][3].6" = select i1 %sel_tmp2, i32 %"tempA[0][2].", i32 %"tempA[0][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].6"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].7"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %"tempA[0][3].8" = select i1 %sel_tmp2, i32 %"tempA[0][3].11", i32 %"tempA[0][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].8"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %burstread.rend.0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin) nounwind ; [#uses=0 type=i32] %burstread.rbegin.1 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %3 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %A, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %"tempA[1][3].11" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %A.load, i9 32, i9 63), !dbg !78 ; [#uses=3 type=i32] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].11"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].11"}, i64 0, metadata !84), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][0]] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].11"}, i64 0, metadata !85), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][2]] %"tempA[1][3].4" = select i1 %sel_tmp, i32 %"tempA[1][3]", i32 %"tempA[1][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].4"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].1" = select i1 %sel_tmp2, i32 %"tempA[1][3]", i32 %"tempA[1][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].1"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].5" = select i1 %sel_tmp, i32 %"tempA[1][3].11", i32 %"tempA[1][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].5"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].6" = select i1 %sel_tmp2, i32 %"tempA[1][2].", i32 %"tempA[1][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].6"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].7"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].8" = select i1 %sel_tmp2, i32 %"tempA[1][3].11", i32 %"tempA[1][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].8"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %burstread.rend.1 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin.1) nounwind ; [#uses=0 type=i32] %burstread.rbegin.2 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %4 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %A, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %"tempA[0][1]" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %A.load, i9 64, i9 95), !dbg !78 ; [#uses=2 type=i32] [debug line = 6:2] %newIndex96.t = or i2 %newIndex106.t, 1 ; [#uses=1 type=i2] %cond = icmp eq i2 %newIndex96.t, 1, !dbg !78 ; [#uses=4 type=i1] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][1]"}, i64 0, metadata !86), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][1]] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][1]"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %"tempA[0][3].2" = select i1 %cond, i32 %"tempA[0][3].1", i32 %"tempA[0][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].2"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %"tempA[0][3].10" = select i1 %cond, i32 %"tempA[0][1]", i32 %"tempA[0][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[0][3].10"}, i64 0, metadata !79), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[0][3]] %burstread.rend.2 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin.2) nounwind ; [#uses=0 type=i32] %burstread.rbegin.3 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %5 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %A, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %indvar.next.3 = add i4 %indvar, 4 ; [#uses=1 type=i4] %"tempA[1][1]" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %A.load, i9 96, i9 127), !dbg !78 ; [#uses=2 type=i32] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][1]"}, i64 0, metadata !87), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][1]] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][1]"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].2" = select i1 %cond, i32 %"tempA[1][3].1", i32 %"tempA[1][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].2"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %"tempA[1][3].10" = select i1 %cond, i32 %"tempA[1][1]", i32 %"tempA[1][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempA[1][3].10"}, i64 0, metadata !83), !dbg !78 ; [debug line = 6:2] [debug variable = tempA[1][3]] %burstread.rend.3 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin.3) nounwind ; [#uses=0 type=i32] br label %burst.rd.header.0 burst.rd.header5.0: ; preds = %burst.rd.body6.0_ifconv, %burst.rd.header5.0.preheader %"tempB[1][3]" = phi i32 [ %"tempB[1][3].2", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %"tempB[1][2]." = phi i32 [ %"tempB[1][3].6", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %"tempB[1][1]." = phi i32 [ %"tempB[1][3].10", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=2 type=i32] %"tempB[1][3].7" = phi i32 [ %"tempB[1][3].8", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=2 type=i32] %"tempB[0][3]" = phi i32 [ %"tempB[0][3].2", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %"tempB[0][2]." = phi i32 [ %"tempB[0][3].6", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %"tempB[0][1]." = phi i32 [ %"tempB[0][3].10", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=2 type=i32] %"tempB[0][3].7" = phi i32 [ %"tempB[0][3].8", %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=2 type=i32] %indvar7 = phi i4 [ %indvar.next8.3, %burst.rd.body6.0_ifconv ], [ 0, %burst.rd.header5.0.preheader ] ; [#uses=4 type=i4] %indvar7.cast = trunc i4 %indvar7 to i3 ; [#uses=1 type=i3] %6 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) ; [#uses=0 type=i32] %exitcond9 = icmp eq i4 %indvar7, -8 ; [#uses=1 type=i1] br i1 %exitcond9, label %burst.rd.end4.0.preheader, label %burst.rd.body6.0_ifconv burst.rd.end4.0.preheader: ; preds = %burst.rd.header5.0 %"tempB[0][0].07.lcssa" = phi i32 [ %"tempB[0][3].7", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[0][1].08.lcssa" = phi i32 [ %"tempB[0][1].", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[0][2].09.lcssa" = phi i32 [ %"tempB[0][2].", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[0][3].0.lcssa" = phi i32 [ %"tempB[0][3]", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[1][0].010.lcssa" = phi i32 [ %"tempB[1][3].7", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[1][1].011.lcssa" = phi i32 [ %"tempB[1][1].", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[1][2].012.lcssa" = phi i32 [ %"tempB[1][2].", %burst.rd.header5.0 ] ; [#uses=2 type=i32] %"tempB[1][3].0.lcssa" = phi i32 [ %"tempB[1][3]", %burst.rd.header5.0 ] ; [#uses=2 type=i32] br label %burst.rd.end4.0 burst.rd.body6.0_ifconv: ; preds = %burst.rd.header5.0 %burstread.rbegin1 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %7 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %B, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @.str7) call void (...)* @_ssdm_op_SpecLoopName([15 x i8]* @memcpy_OC_tempB_OC_B.str) %tmp.4.cast = trunc i4 %indvar7 to i3, !dbg !88 ; [#uses=1 type=i3] [debug line = 7:2] %tmp.5 = lshr exact i3 %tmp.4.cast, 2, !dbg !88 ; [#uses=1 type=i3] [debug line = 7:2] %tmp.6 = zext i3 %tmp.5 to i64, !dbg !88 ; [#uses=1 type=i64] [debug line = 7:2] %B.addr = getelementptr [2 x i128]* %B, i64 0, i64 %tmp.6, !dbg !88 ; [#uses=1 type=i128*] [debug line = 7:2] %B.load = load i128* %B.addr, align 8, !dbg !88 ; [#uses=4 type=i128] [debug line = 7:2] %"tempB[0][3].11" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %B.load, i9 0, i9 31), !dbg !88 ; [#uses=3 type=i32] [debug line = 7:2] %newIndex1 = lshr exact i3 %indvar7.cast, 1 ; [#uses=1 type=i3] %newIndex66.t = trunc i3 %newIndex1 to i2 ; [#uses=3 type=i2] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].11"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].11"}, i64 0, metadata !91), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][0]] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].11"}, i64 0, metadata !92), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][2]] %sel_tmp6 = icmp eq i2 %newIndex66.t, -2 ; [#uses=4 type=i1] %"tempB[0][3].4" = select i1 %sel_tmp6, i32 %"tempB[0][3]", i32 %"tempB[0][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].4"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %sel_tmp8 = icmp eq i2 %newIndex66.t, 0 ; [#uses=6 type=i1] %"tempB[0][3].1" = select i1 %sel_tmp8, i32 %"tempB[0][3]", i32 %"tempB[0][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].1"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %"tempB[0][3].5" = select i1 %sel_tmp6, i32 %"tempB[0][3].11", i32 %"tempB[0][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].5"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %"tempB[0][3].6" = select i1 %sel_tmp8, i32 %"tempB[0][2].", i32 %"tempB[0][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].6"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].7"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %"tempB[0][3].8" = select i1 %sel_tmp8, i32 %"tempB[0][3].11", i32 %"tempB[0][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].8"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %burstread.rend12.0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin1) nounwind ; [#uses=0 type=i32] %burstread.rbegin1.1 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %8 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %B, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %"tempB[1][3].11" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %B.load, i9 32, i9 63), !dbg !88 ; [#uses=3 type=i32] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].11"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].11"}, i64 0, metadata !94), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][0]] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].11"}, i64 0, metadata !95), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][2]] %"tempB[1][3].4" = select i1 %sel_tmp6, i32 %"tempB[1][3]", i32 %"tempB[1][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].4"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].1" = select i1 %sel_tmp8, i32 %"tempB[1][3]", i32 %"tempB[1][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].1"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].5" = select i1 %sel_tmp6, i32 %"tempB[1][3].11", i32 %"tempB[1][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].5"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].6" = select i1 %sel_tmp8, i32 %"tempB[1][2].", i32 %"tempB[1][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].6"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].7"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].8" = select i1 %sel_tmp8, i32 %"tempB[1][3].11", i32 %"tempB[1][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].8"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %burstread.rend12.1 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin1.1) nounwind ; [#uses=0 type=i32] %burstread.rbegin1.2 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %9 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %B, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %"tempB[0][1]" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %B.load, i9 64, i9 95), !dbg !88 ; [#uses=2 type=i32] [debug line = 7:2] %newIndex56.t = or i2 %newIndex66.t, 1 ; [#uses=1 type=i2] %cond1 = icmp eq i2 %newIndex56.t, 1, !dbg !88 ; [#uses=4 type=i1] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][1]"}, i64 0, metadata !96), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][1]] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][1]"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %"tempB[0][3].2" = select i1 %cond1, i32 %"tempB[0][3].1", i32 %"tempB[0][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].2"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %"tempB[0][3].10" = select i1 %cond1, i32 %"tempB[0][1]", i32 %"tempB[0][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[0][3].10"}, i64 0, metadata !89), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[0][3]] %burstread.rend12.2 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin1.2) nounwind ; [#uses=0 type=i32] %burstread.rbegin1.3 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region.str) nounwind ; [#uses=1 type=i32] %10 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %B, i32 1, i32 8, i32 1) ; [#uses=0 type=i32] %indvar.next8.3 = add i4 %indvar7, 4 ; [#uses=1 type=i4] %"tempB[1][1]" = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %B.load, i9 96, i9 127), !dbg !88 ; [#uses=2 type=i32] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][1]"}, i64 0, metadata !97), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][1]] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][1]"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].2" = select i1 %cond1, i32 %"tempB[1][3].1", i32 %"tempB[1][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].2"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %"tempB[1][3].10" = select i1 %cond1, i32 %"tempB[1][1]", i32 %"tempB[1][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempB[1][3].10"}, i64 0, metadata !93), !dbg !88 ; [debug line = 7:2] [debug variable = tempB[1][3]] %burstread.rend12.3 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region.str, i32 %burstread.rbegin1.3) nounwind ; [#uses=0 type=i32] br label %burst.rd.header5.0 burst.rd.end4.0: ; preds = %burst.rd.end4.1_ifconv, %burst.rd.end4.0.preheader %"tempResult[1][3]" = phi i32 [ %"tempResult[1][3].2", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %"tempResult[1][2]." = phi i32 [ %"tempResult[1][3].6", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %"tempResult[1][1]." = phi i32 [ %"tempResult[1][3].10", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=2 type=i32] %"tempResult[1][3].7" = phi i32 [ %"tempResult[1][3].8", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=2 type=i32] %"tempResult[0][3]" = phi i32 [ %"tempResult[0][3].2", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %"tempResult[0][2]." = phi i32 [ %"tempResult[0][3].6", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %"tempResult[0][1]." = phi i32 [ %"tempResult[0][3].10", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=2 type=i32] %"tempResult[0][3].7" = phi i32 [ %"tempResult[0][3].8", %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=2 type=i32] %i = phi i4 [ %i.1.3, %burst.rd.end4.1_ifconv ], [ 0, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i4] %i.cast = trunc i4 %i to i3 ; [#uses=1 type=i3] %11 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) nounwind ; [#uses=0 type=i32] %exitcond = icmp eq i4 %i, -8, !dbg !98 ; [#uses=1 type=i1] [debug line = 8:33] br i1 %exitcond, label %burst.wr.header.0.preheader, label %burst.rd.end4.1_ifconv, !dbg !98 ; [debug line = 8:33] burst.wr.header.0.preheader: ; preds = %burst.rd.end4.0 %"tempResult[0][0].013.lcssa" = phi i32 [ %"tempResult[0][3].7", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[0][1].014.lcssa" = phi i32 [ %"tempResult[0][1].", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[0][2].015.lcssa" = phi i32 [ %"tempResult[0][2].", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[0][3].0.lcssa" = phi i32 [ %"tempResult[0][3]", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[1][0].016.lcssa" = phi i32 [ %"tempResult[1][3].7", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[1][1].017.lcssa" = phi i32 [ %"tempResult[1][1].", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[1][2].018.lcssa" = phi i32 [ %"tempResult[1][2].", %burst.rd.end4.0 ] ; [#uses=2 type=i32] %"tempResult[1][3].0.lcssa" = phi i32 [ %"tempResult[1][3]", %burst.rd.end4.0 ] ; [#uses=2 type=i32] br label %burst.wr.header.0 burst.rd.end4.1_ifconv: ; preds = %burst.rd.end4.0 call void (...)* @_ssdm_op_SpecLoopName([17 x i8]* @.str5) nounwind, !dbg !100 ; [debug line = 10:2] %tmp.8 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @.str5) nounwind, !dbg !100 ; [#uses=1 type=i32] [debug line = 10:2] call void (...)* @_ssdm_op_SpecPipeline(i32 -1, i32 1, i32 1, i32 0, [1 x i8]* @.str1) nounwind, !dbg !102 ; [debug line = 10:1] %newIndex2 = lshr exact i3 %i.cast, 1 ; [#uses=1 type=i3] %newIndex126.t = trunc i3 %newIndex2 to i2 ; [#uses=7 type=i2] %tmp = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempA[0][0].01.lcssa", i32 %"tempA[0][1].02.lcssa", i32 %"tempA[0][2].03.lcssa", i32 %"tempA[0][3].0.lcssa", i2 %newIndex126.t) ; [#uses=1 type=i32] %tmp.3 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempB[0][0].07.lcssa", i32 %"tempB[0][1].08.lcssa", i32 %"tempB[0][2].09.lcssa", i32 %"tempB[0][3].0.lcssa", i2 %newIndex126.t) ; [#uses=1 type=i32] %"tempResult[0][3].11" = mul nsw i32 %tmp.3, %tmp, !dbg !103 ; [#uses=3 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].11"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].11"}, i64 0, metadata !106), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][0]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].11"}, i64 0, metadata !107), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][2]] %sel_tmp12 = icmp eq i2 %newIndex126.t, -2 ; [#uses=4 type=i1] %"tempResult[0][3].4" = select i1 %sel_tmp12, i32 %"tempResult[0][3]", i32 %"tempResult[0][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].4"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %sel_tmp14 = icmp eq i2 %newIndex126.t, 0 ; [#uses=6 type=i1] %"tempResult[0][3].1" = select i1 %sel_tmp14, i32 %"tempResult[0][3]", i32 %"tempResult[0][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].1"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %"tempResult[0][3].5" = select i1 %sel_tmp12, i32 %"tempResult[0][3].11", i32 %"tempResult[0][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].5"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %"tempResult[0][3].6" = select i1 %sel_tmp14, i32 %"tempResult[0][2].", i32 %"tempResult[0][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].6"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].7"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %"tempResult[0][3].8" = select i1 %sel_tmp14, i32 %"tempResult[0][3].11", i32 %"tempResult[0][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].8"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %12 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @.str5, i32 %tmp.8) nounwind, !dbg !108 ; [#uses=0 type=i32] [debug line = 9:35] %tmp.4 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempA[1][0].04.lcssa", i32 %"tempA[1][1].05.lcssa", i32 %"tempA[1][2].06.lcssa", i32 %"tempA[1][3].0.lcssa", i2 %newIndex126.t) ; [#uses=1 type=i32] %tmp.7 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempB[1][0].010.lcssa", i32 %"tempB[1][1].011.lcssa", i32 %"tempB[1][2].012.lcssa", i32 %"tempB[1][3].0.lcssa", i2 %newIndex126.t) ; [#uses=1 type=i32] %"tempResult[1][3].11" = mul nsw i32 %tmp.7, %tmp.4, !dbg !103 ; [#uses=3 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].11"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].11"}, i64 0, metadata !110), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][0]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].11"}, i64 0, metadata !111), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][2]] %"tempResult[1][3].4" = select i1 %sel_tmp12, i32 %"tempResult[1][3]", i32 %"tempResult[1][3].11" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].4"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].1" = select i1 %sel_tmp14, i32 %"tempResult[1][3]", i32 %"tempResult[1][3].4" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].1"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].5" = select i1 %sel_tmp12, i32 %"tempResult[1][3].11", i32 %"tempResult[1][2]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].5"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].6" = select i1 %sel_tmp14, i32 %"tempResult[1][2].", i32 %"tempResult[1][3].5" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].6"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].7"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].8" = select i1 %sel_tmp14, i32 %"tempResult[1][3].11", i32 %"tempResult[1][3].7" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].8"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %newIndex116.t = or i2 %newIndex126.t, 1 ; [#uses=5 type=i2] %tmp.9 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempA[0][0].01.lcssa", i32 %"tempA[0][1].02.lcssa", i32 %"tempA[0][2].03.lcssa", i32 %"tempA[0][3].0.lcssa", i2 %newIndex116.t) ; [#uses=1 type=i32] %tmp.12 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempB[0][0].07.lcssa", i32 %"tempB[0][1].08.lcssa", i32 %"tempB[0][2].09.lcssa", i32 %"tempB[0][3].0.lcssa", i2 %newIndex116.t) ; [#uses=1 type=i32] %"tempResult[0][1]" = mul nsw i32 %tmp.12, %tmp.9, !dbg !103 ; [#uses=2 type=i32] [debug line = 9:1] %cond2 = icmp eq i2 %newIndex116.t, 1, !dbg !103 ; [#uses=4 type=i1] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][1]"}, i64 0, metadata !112), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][1]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][1]"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %"tempResult[0][3].2" = select i1 %cond2, i32 %"tempResult[0][3].1", i32 %"tempResult[0][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].2"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %"tempResult[0][3].10" = select i1 %cond2, i32 %"tempResult[0][1]", i32 %"tempResult[0][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[0][3].10"}, i64 0, metadata !104), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tmp.13 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempA[1][0].04.lcssa", i32 %"tempA[1][1].05.lcssa", i32 %"tempA[1][2].06.lcssa", i32 %"tempA[1][3].0.lcssa", i2 %newIndex116.t) ; [#uses=1 type=i32] %tmp.14 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempB[1][0].010.lcssa", i32 %"tempB[1][1].011.lcssa", i32 %"tempB[1][2].012.lcssa", i32 %"tempB[1][3].0.lcssa", i2 %newIndex116.t) ; [#uses=1 type=i32] %"tempResult[1][1]" = mul nsw i32 %tmp.14, %tmp.13, !dbg !103 ; [#uses=2 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][1]"}, i64 0, metadata !113), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][1]] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][1]"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].2" = select i1 %cond2, i32 %"tempResult[1][3].1", i32 %"tempResult[1][1]" ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].2"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %"tempResult[1][3].10" = select i1 %cond2, i32 %"tempResult[1][1]", i32 %"tempResult[1][1]." ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %"tempResult[1][3].10"}, i64 0, metadata !109), !dbg !103 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %i.1.3 = add i4 %i, 4, !dbg !114 ; [#uses=1 type=i4] [debug line = 8:42] br label %burst.rd.end4.0, !dbg !114 ; [debug line = 8:42] burst.wr.header.0: ; preds = %burst.wr.body.0, %burst.wr.header.0.preheader %indvar1 = phi i4 [ %indvar.next1.3, %burst.wr.body.0 ], [ 0, %burst.wr.header.0.preheader ] ; [#uses=4 type=i4] %indvar1.cast = trunc i4 %indvar1 to i3 ; [#uses=1 type=i3] %13 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) nounwind ; [#uses=0 type=i32] %exitcond2 = icmp eq i4 %indvar1, -8 ; [#uses=1 type=i1] br i1 %exitcond2, label %memcpy.tail, label %burst.wr.body.0 burst.wr.body.0: ; preds = %burst.wr.header.0 %burstwrite.rbegin = call i32 (...)* @_ssdm_op_SpecRegionBegin([18 x i8]* @burstwrite_OC_region.str) nounwind ; [#uses=1 type=i32] %14 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %result, i32 0, i32 8, i32 1) ; [#uses=0 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @.str9) call void (...)* @_ssdm_op_SpecLoopName([29 x i8]* @memcpy_OC_result_OC_tempResult_OC_gep.str) %newIndex3 = lshr exact i3 %indvar1.cast, 1 ; [#uses=1 type=i3] %newIndex26.t = trunc i3 %newIndex3 to i2 ; [#uses=3 type=i2] %tmp.15 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempResult[0][0].013.lcssa", i32 %"tempResult[0][1].014.lcssa", i32 %"tempResult[0][2].015.lcssa", i32 %"tempResult[0][3].0.lcssa", i2 %newIndex26.t) ; [#uses=1 type=i32] %tmp.7.cast = trunc i4 %indvar1 to i3, !dbg !115 ; [#uses=1 type=i3] [debug line = 10:2] %tmp. = lshr exact i3 %tmp.7.cast, 2, !dbg !115 ; [#uses=1 type=i3] [debug line = 10:2] %tmp.10 = zext i3 %tmp. to i64, !dbg !115 ; [#uses=1 type=i64] [debug line = 10:2] %result.addr = getelementptr [2 x i128]* %result, i64 0, i64 %tmp.10, !dbg !115 ; [#uses=1 type=i128*] [debug line = 10:2] %burstwrite.rend.0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([18 x i8]* @burstwrite_OC_region.str, i32 %burstwrite.rbegin) nounwind ; [#uses=0 type=i32] %burstwrite.rbegin.1 = call i32 (...)* @_ssdm_op_SpecRegionBegin([18 x i8]* @burstwrite_OC_region.str) nounwind ; [#uses=1 type=i32] %15 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %result, i32 0, i32 8, i32 1) ; [#uses=0 type=i32] %tmp.16 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempResult[1][0].016.lcssa", i32 %"tempResult[1][1].017.lcssa", i32 %"tempResult[1][2].018.lcssa", i32 %"tempResult[1][3].0.lcssa", i2 %newIndex26.t) ; [#uses=1 type=i32] %burstwrite.rend.1 = call i32 (...)* @_ssdm_op_SpecRegionEnd([18 x i8]* @burstwrite_OC_region.str, i32 %burstwrite.rbegin.1) nounwind ; [#uses=0 type=i32] %burstwrite.rbegin.2 = call i32 (...)* @_ssdm_op_SpecRegionBegin([18 x i8]* @burstwrite_OC_region.str) nounwind ; [#uses=1 type=i32] %16 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %result, i32 0, i32 8, i32 1) ; [#uses=0 type=i32] %newIndex16.t = or i2 %newIndex26.t, 1 ; [#uses=2 type=i2] %tmp.17 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempResult[0][0].013.lcssa", i32 %"tempResult[0][1].014.lcssa", i32 %"tempResult[0][2].015.lcssa", i32 %"tempResult[0][3].0.lcssa", i2 %newIndex16.t) ; [#uses=1 type=i32] %burstwrite.rend.2 = call i32 (...)* @_ssdm_op_SpecRegionEnd([18 x i8]* @burstwrite_OC_region.str, i32 %burstwrite.rbegin.2) nounwind ; [#uses=0 type=i32] %burstwrite.rbegin.3 = call i32 (...)* @_ssdm_op_SpecRegionBegin([18 x i8]* @burstwrite_OC_region.str) nounwind ; [#uses=1 type=i32] %17 = call i32 (...)* @_ssdm_op_SpecBurst([2 x i128]* %result, i32 0, i32 8, i32 1) ; [#uses=0 type=i32] %indvar.next1.3 = add i4 %indvar1, 4 ; [#uses=1 type=i4] %tmp.19 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %"tempResult[1][0].016.lcssa", i32 %"tempResult[1][1].017.lcssa", i32 %"tempResult[1][2].018.lcssa", i32 %"tempResult[1][3].0.lcssa", i2 %newIndex16.t) ; [#uses=1 type=i32] %tmp.11 = call i128 @_ssdm_op_BitConcatenate.i128.i32.i32.i32.i32(i32 %tmp.19, i32 %tmp.17, i32 %tmp.16, i32 %tmp.15), !dbg !115 ; [#uses=1 type=i128] [debug line = 10:2] store i128 %tmp.11, i128* %result.addr, align 8, !dbg !115 ; [debug line = 10:2] %burstwrite.rend.3 = call i32 (...)* @_ssdm_op_SpecRegionEnd([18 x i8]* @burstwrite_OC_region.str, i32 %burstwrite.rbegin.3) nounwind ; [#uses=0 type=i32] br label %burst.wr.header.0 memcpy.tail: ; preds = %burst.wr.header.0 ret void, !dbg !116 ; [debug line = 11:1] } ; [#uses=81] declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone ; [#uses=1] declare void @_ssdm_op_SpecTopModule(...) ; [#uses=13] declare i32 @_ssdm_op_SpecRegionEnd(...) ; [#uses=13] declare i32 @_ssdm_op_SpecRegionBegin(...) ; [#uses=4] declare void @_ssdm_op_SpecPipeline(...) nounwind ; [#uses=4] declare i32 @_ssdm_op_SpecLoopTripCount(...) ; [#uses=4] declare void @_ssdm_op_SpecLoopName(...) nounwind ; [#uses=4] declare void @_ssdm_op_SpecInterface(...) nounwind ; [#uses=12] declare i32 @_ssdm_op_SpecBurst(...) ; [#uses=3] declare void @_ssdm_op_SpecBitsMap(...) ; [#uses=8] declare i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128, i9, i9) nounwind readnone ; [#uses=12] declare i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32, i32, i32, i32, i2) ; [#uses=1] declare i128 @_ssdm_op_BitConcatenate.i128.i32.i32.i32.i32(i32, i32, i32, i32) nounwind readnone !llvm.dbg.cu = !{!0} !opencl.kernels = !{!13} !hls.encrypted.func = !{} !llvm.map.gv = !{} !0 = metadata !{i32 786449, i32 0, i32 4, metadata !"/home/hakta/Documents/vector_mult/solution4/.autopilot/db/vector_mult.pragma.2.cpp", metadata !"/home/hakta/Documents", metadata !"clang version 3.1 ", i1 true, i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1} ; [ DW_TAG_compile_unit ] !1 = metadata !{metadata !2} !2 = metadata !{i32 0} !3 = metadata !{metadata !4} !4 = metadata !{metadata !5} !5 = metadata !{i32 786478, i32 0, metadata !6, metadata !"vector_mult", metadata !"vector_mult", metadata !"_Z11vector_multPiS_S_", metadata !6, i32 4, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, null, null, null, metadata !11, i32 4} ; [ DW_TAG_subprogram ] !6 = metadata !{i32 786473, metadata !"vector_mult/vector_mult.cpp", metadata !"/home/hakta/Documents", null} ; [ DW_TAG_file_type ] !7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] !8 = metadata !{null, metadata !9, metadata !9, metadata !9} !9 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !10} ; [ DW_TAG_pointer_type ] !10 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !11 = metadata !{metadata !12} !12 = metadata !{i32 786468} ; [ DW_TAG_base_type ] !13 = metadata !{null, metadata !14, metadata !15, metadata !16, metadata !17, metadata !18, metadata !19} !14 = metadata !{metadata !"kernel_arg_addr_space", i32 1, i32 1, i32 1} !15 = metadata !{metadata !"kernel_arg_access_qual", metadata !"none", metadata !"none", metadata !"none"} !16 = metadata !{metadata !"kernel_arg_type", metadata !"int*", metadata !"int*", metadata !"int*"} !17 = metadata !{metadata !"kernel_arg_type_qual", metadata !"", metadata !"", metadata !""} !18 = metadata !{metadata !"kernel_arg_name", metadata !"A", metadata !"B", metadata !"result"} !19 = metadata !{metadata !"reqd_work_group_size", i32 1, i32 1, i32 1} !20 = metadata !{metadata !21, metadata !26, metadata !31, metadata !36} !21 = metadata !{i32 0, i32 31, metadata !22} !22 = metadata !{metadata !23} !23 = metadata !{metadata !"B", metadata !24, metadata !"int", i32 0, i32 31} !24 = metadata !{metadata !25} !25 = metadata !{i32 0, i32 4, i32 4} !26 = metadata !{i32 32, i32 63, metadata !27} !27 = metadata !{metadata !28} !28 = metadata !{metadata !"B", metadata !29, metadata !"int", i32 0, i32 31} !29 = metadata !{metadata !30} !30 = metadata !{i32 1, i32 5, i32 4} !31 = metadata !{i32 64, i32 95, metadata !32} !32 = metadata !{metadata !33} !33 = metadata !{metadata !"B", metadata !34, metadata !"int", i32 0, i32 31} !34 = metadata !{metadata !35} !35 = metadata !{i32 2, i32 6, i32 4} !36 = metadata !{i32 96, i32 127, metadata !37} !37 = metadata !{metadata !38} !38 = metadata !{metadata !"B", metadata !39, metadata !"int", i32 0, i32 31} !39 = metadata !{metadata !40} !40 = metadata !{i32 3, i32 7, i32 4} !41 = metadata !{metadata !42, metadata !45, metadata !48, metadata !51} !42 = metadata !{i32 0, i32 31, metadata !43} !43 = metadata !{metadata !44} !44 = metadata !{metadata !"A", metadata !24, metadata !"int", i32 0, i32 31} !45 = metadata !{i32 32, i32 63, metadata !46} !46 = metadata !{metadata !47} !47 = metadata !{metadata !"A", metadata !29, metadata !"int", i32 0, i32 31} !48 = metadata !{i32 64, i32 95, metadata !49} !49 = metadata !{metadata !50} !50 = metadata !{metadata !"A", metadata !34, metadata !"int", i32 0, i32 31} !51 = metadata !{i32 96, i32 127, metadata !52} !52 = metadata !{metadata !53} !53 = metadata !{metadata !"A", metadata !39, metadata !"int", i32 0, i32 31} !54 = metadata !{metadata !55, metadata !58, metadata !61, metadata !64} !55 = metadata !{i32 0, i32 31, metadata !56} !56 = metadata !{metadata !57} !57 = metadata !{metadata !"result", metadata !24, metadata !"int", i32 0, i32 31} !58 = metadata !{i32 32, i32 63, metadata !59} !59 = metadata !{metadata !60} !60 = metadata !{metadata !"result", metadata !29, metadata !"int", i32 0, i32 31} !61 = metadata !{i32 64, i32 95, metadata !62} !62 = metadata !{metadata !63} !63 = metadata !{metadata !"result", metadata !34, metadata !"int", i32 0, i32 31} !64 = metadata !{i32 96, i32 127, metadata !65} !65 = metadata !{metadata !66} !66 = metadata !{metadata !"result", metadata !39, metadata !"int", i32 0, i32 31} !67 = metadata !{i32 786689, metadata !5, metadata !"A", null, i32 4, metadata !68, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !68 = metadata !{i32 786433, null, metadata !"", null, i32 0, i64 256, i64 32, i32 0, i32 0, metadata !10, metadata !69, i32 0, i32 0} ; [ DW_TAG_array_type ] !69 = metadata !{metadata !70} !70 = metadata !{i32 786465, i64 0, i64 7} ; [ DW_TAG_subrange_type ] !71 = metadata !{i32 4, i32 22, metadata !5, null} !72 = metadata !{i32 786689, metadata !5, metadata !"B", null, i32 4, metadata !68, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !73 = metadata !{i32 4, i32 32, metadata !5, null} !74 = metadata !{i32 786689, metadata !5, metadata !"result", null, i32 4, metadata !68, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !75 = metadata !{i32 4, i32 42, metadata !5, null} !76 = metadata !{i32 5, i32 1, metadata !77, null} !77 = metadata !{i32 786443, metadata !5, i32 4, i32 53, metadata !6, i32 0} ; [ DW_TAG_lexical_block ] !78 = metadata !{i32 6, i32 2, metadata !77, null} !79 = metadata !{i32 790529, metadata !80, metadata !"tempA[0][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !80 = metadata !{i32 786688, metadata !77, metadata !"tempA", metadata !6, i32 5, metadata !68, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !81 = metadata !{i32 790529, metadata !80, metadata !"tempA[0][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !82 = metadata !{i32 790529, metadata !80, metadata !"tempA[0][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !83 = metadata !{i32 790529, metadata !80, metadata !"tempA[1][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !84 = metadata !{i32 790529, metadata !80, metadata !"tempA[1][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !85 = metadata !{i32 790529, metadata !80, metadata !"tempA[1][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !86 = metadata !{i32 790529, metadata !80, metadata !"tempA[0][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !87 = metadata !{i32 790529, metadata !80, metadata !"tempA[1][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !88 = metadata !{i32 7, i32 2, metadata !77, null} !89 = metadata !{i32 790529, metadata !90, metadata !"tempB[0][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !90 = metadata !{i32 786688, metadata !77, metadata !"tempB", metadata !6, i32 5, metadata !68, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !91 = metadata !{i32 790529, metadata !90, metadata !"tempB[0][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !92 = metadata !{i32 790529, metadata !90, metadata !"tempB[0][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !93 = metadata !{i32 790529, metadata !90, metadata !"tempB[1][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !94 = metadata !{i32 790529, metadata !90, metadata !"tempB[1][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !95 = metadata !{i32 790529, metadata !90, metadata !"tempB[1][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !96 = metadata !{i32 790529, metadata !90, metadata !"tempB[0][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !97 = metadata !{i32 790529, metadata !90, metadata !"tempB[1][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !98 = metadata !{i32 8, i32 33, metadata !99, null} !99 = metadata !{i32 786443, metadata !77, i32 8, i32 19, metadata !6, i32 1} ; [ DW_TAG_lexical_block ] !100 = metadata !{i32 10, i32 2, metadata !101, null} !101 = metadata !{i32 786443, metadata !99, i32 10, i32 1, metadata !6, i32 2} ; [ DW_TAG_lexical_block ] !102 = metadata !{i32 10, i32 1, metadata !101, null} !103 = metadata !{i32 9, i32 1, metadata !101, null} !104 = metadata !{i32 790529, metadata !105, metadata !"tempResult[0][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !105 = metadata !{i32 786688, metadata !77, metadata !"tempResult", metadata !6, i32 5, metadata !68, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !106 = metadata !{i32 790529, metadata !105, metadata !"tempResult[0][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !107 = metadata !{i32 790529, metadata !105, metadata !"tempResult[0][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !108 = metadata !{i32 9, i32 35, metadata !101, null} !109 = metadata !{i32 790529, metadata !105, metadata !"tempResult[1][3]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !110 = metadata !{i32 790529, metadata !105, metadata !"tempResult[1][0]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !111 = metadata !{i32 790529, metadata !105, metadata !"tempResult[1][2]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !112 = metadata !{i32 790529, metadata !105, metadata !"tempResult[0][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !113 = metadata !{i32 790529, metadata !105, metadata !"tempResult[1][1]", null, i32 5, metadata !10, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !114 = metadata !{i32 8, i32 42, metadata !99, null} !115 = metadata !{i32 10, i32 2, metadata !77, null} !116 = metadata !{i32 11, i32 1, metadata !77, null}