; ModuleID = '/home/hakta/Documents/vector_mult/solution4/.autopilot/db/a.o.3.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]*] @mode5 = internal constant [10 x i8] c"s_axilite\00" ; [#uses=1 type=[10 x i8]*] @mode3 = internal constant [10 x i8] c"s_axilite\00" ; [#uses=1 type=[10 x i8]*] @mode = internal constant [10 x i8] c"s_axilite\00" ; [#uses=1 type=[10 x i8]*] @memcpy_OC_tempB_OC_B = internal unnamed_addr constant [15 x i8] c"memcpy.tempB.B\00" ; [#uses=1 type=[15 x i8]*] @memcpy_OC_tempA_OC_A = internal unnamed_addr constant [15 x i8] c"memcpy.tempA.A\00" ; [#uses=1 type=[15 x i8]*] @memcpy_OC_result_OC_s = internal unnamed_addr constant [29 x i8] c"memcpy.result.tempResult.gep\00" ; [#uses=1 type=[29 x i8]*] @burstwrite_OC_region = internal unnamed_addr constant [18 x i8] c"burstwrite.region\00" ; [#uses=2 type=[18 x i8]*] @burstread_OC_region_s = internal unnamed_addr constant [17 x i8] c"burstread.region\00" ; [#uses=4 type=[17 x i8]*] @bundle6 = internal constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @bundle4 = internal constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @bundle = internal constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @p_str9 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @p_str7 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @p_str6 = internal unnamed_addr constant [1 x i8] zeroinitializer ; [#uses=1 type=[1 x i8]*] @p_str5 = private unnamed_addr constant [17 x i8] c"vector_mult_loop\00", align 1 ; [#uses=3 type=[17 x i8]*] @p_str4 = private unnamed_addr constant [6 x i8] c"slave\00", align 1 ; [#uses=4 type=[6 x i8]*] @p_str3 = private unnamed_addr constant [6 x i8] c"m_axi\00", align 1 ; [#uses=1 type=[6 x i8]*] @p_str2 = private unnamed_addr constant [10 x i8] c"s_axilite\00", align 1 ; [#uses=1 type=[10 x i8]*] @p_str1 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 ; [#uses=24 type=[1 x i8]*] ; [#uses=0] define void @vector_mult(i128* %gmem, i32 %A, i32 %B, i32 %result) { %result_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %result) ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %result_read}, i64 0, metadata !11), !dbg !23 ; [debug line = 4:42] [debug variable = result] %B_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %B) ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %B_read}, i64 0, metadata !24), !dbg !25 ; [debug line = 4:32] [debug variable = B] %A_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %A) ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %A_read}, i64 0, metadata !26), !dbg !27 ; [debug line = 4:22] [debug variable = A] %result5 = call i28 @_ssdm_op_PartSelect.i28.i32.i32.i32(i32 %result_read, i32 4, i32 31) ; [#uses=1 type=i28] %tmp_s = zext i28 %result5 to i64 ; [#uses=1 type=i64] %gmem_addr = getelementptr i128* %gmem, i64 %tmp_s ; [#uses=3 type=i128*] %B3 = call i28 @_ssdm_op_PartSelect.i28.i32.i32.i32(i32 %B_read, i32 4, i32 31) ; [#uses=1 type=i28] %tmp_1 = zext i28 %B3 to i64 ; [#uses=1 type=i64] %gmem_addr_1 = getelementptr i128* %gmem, i64 %tmp_1 ; [#uses=2 type=i128*] %A1 = call i28 @_ssdm_op_PartSelect.i28.i32.i32.i32(i32 %A_read, i32 4, i32 31) ; [#uses=1 type=i28] %tmp_2 = zext i28 %A1 to i64 ; [#uses=1 type=i64] %gmem_addr_2 = getelementptr i128* %gmem, i64 %tmp_2 ; [#uses=2 type=i128*] call void (...)* @_ssdm_op_SpecBitsMap(i128* %gmem), !map !28 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @vector_mult_str) nounwind call void @llvm.dbg.value(metadata !{i32 %A}, i64 0, metadata !26), !dbg !27 ; [debug line = 4:22] [debug variable = A] call void @llvm.dbg.value(metadata !{i32 %B}, i64 0, metadata !24), !dbg !25 ; [debug line = 4:32] [debug variable = B] call void @llvm.dbg.value(metadata !{i32 %result}, i64 0, metadata !11), !dbg !23 ; [debug line = 4:42] [debug variable = result] call void (...)* @_ssdm_op_SpecInterface(i32 0, [10 x i8]* @p_str2, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1, [1 x i8]* @p_str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1) nounwind, !dbg !57 ; [debug line = 5:1] call void (...)* @_ssdm_op_SpecInterface(i32 %result, [10 x i8]* @mode5, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [1 x i8]* @bundle6, [6 x i8]* @p_str4, [1 x i8]* @p_str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @p_str1, [1 x i8]* @p_str1) call void (...)* @_ssdm_op_SpecInterface(i32 %B, [10 x i8]* @mode3, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [1 x i8]* @bundle4, [6 x i8]* @p_str4, [1 x i8]* @p_str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @p_str1, [1 x i8]* @p_str1) call void (...)* @_ssdm_op_SpecInterface(i128* %gmem, [6 x i8]* @p_str3, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [1 x i8]* @p_str1, [6 x i8]* @p_str4, [1 x i8]* @p_str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @p_str1, [1 x i8]* @p_str1) call void (...)* @_ssdm_op_SpecInterface(i32 %A, [10 x i8]* @mode, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [1 x i8]* @bundle, [6 x i8]* @p_str4, [1 x i8]* @p_str1, i32 16, i32 16, i32 16, i32 16, [1 x i8]* @p_str1, [1 x i8]* @p_str1) %gmem_addr_2_rd_req = call i1 @_ssdm_op_ReadReq.m_axi.i128P(i128* %gmem_addr_2, i32 2), !dbg !59 ; [#uses=0 type=i1] [debug line = 6:2] 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=4 type=i32] %tempA_1_2_s = phi i32 [ undef, %0 ], [ %tempA_1_3_6, %burst.rd.body.0_ifconv ] ; [#uses=4 type=i32] %tempA_1_1_s = phi i32 [ undef, %0 ], [ %tempA_1_3_10, %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %tempA_1_3_7 = phi i32 [ undef, %0 ], [ %tempA_1_3_8, %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %tempA_0_3 = phi i32 [ undef, %0 ], [ %tempA_0_3_2, %burst.rd.body.0_ifconv ] ; [#uses=4 type=i32] %tempA_0_2_s = phi i32 [ undef, %0 ], [ %tempA_0_3_6, %burst.rd.body.0_ifconv ] ; [#uses=4 type=i32] %tempA_0_1_s = phi i32 [ undef, %0 ], [ %tempA_0_3_10, %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %tempA_0_3_7 = phi i32 [ undef, %0 ], [ %tempA_0_3_8, %burst.rd.body.0_ifconv ] ; [#uses=3 type=i32] %indvar = phi i4 [ 0, %0 ], [ %indvar_next_3, %burst.rd.body.0_ifconv ] ; [#uses=3 type=i4] %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 %gmem_addr_1_rd_req = call i1 @_ssdm_op_ReadReq.m_axi.i128P(i128* %gmem_addr_1, i32 2), !dbg !60 ; [#uses=0 type=i1] [debug line = 7:2] br label %burst.rd.header5.0 burst.rd.body.0_ifconv: ; preds = %burst.rd.header.0 %empty = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) ; [#uses=0 type=i32] %burstread_rbegin = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region_s) nounwind ; [#uses=1 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @p_str6) call void (...)* @_ssdm_op_SpecLoopName([15 x i8]* @memcpy_OC_tempA_OC_A) %gmem_addr_2_read = call i128 @_ssdm_op_Read.m_axi.i128P(i128* %gmem_addr_2), !dbg !59 ; [#uses=4 type=i128] [debug line = 6:2] %tempA_0_3_11 = trunc i128 %gmem_addr_2_read to i32, !dbg !59 ; [#uses=3 type=i32] [debug line = 6:2] %newIndex106_t = call i2 @_ssdm_op_PartSelect.i2.i4.i32.i32(i4 %indvar, i32 1, i32 2) ; [#uses=3 type=i2] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_11}, i64 0, metadata !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_11}, i64 0, metadata !63), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][0]] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_11}, i64 0, metadata !64), !dbg !59 ; [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 !61), !dbg !59 ; [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 !61), !dbg !59 ; [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_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_5}, i64 0, metadata !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] %tempA_0_3_6 = select i1 %sel_tmp2, i32 %tempA_0_2_s, i32 %tempA_0_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_6}, i64 0, metadata !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_7}, i64 0, metadata !61), !dbg !59 ; [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 !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] %burstread_rend_0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region_s, i32 %burstread_rbegin) nounwind ; [#uses=0 type=i32] %tempA_1_3_11 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_2_read, i9 32, i9 63), !dbg !59 ; [#uses=3 type=i32] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_11}, i64 0, metadata !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_11}, i64 0, metadata !66), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][0]] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_11}, i64 0, metadata !67), !dbg !59 ; [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 !65), !dbg !59 ; [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 !65), !dbg !59 ; [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_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_5}, i64 0, metadata !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] %tempA_1_3_6 = select i1 %sel_tmp2, i32 %tempA_1_2_s, i32 %tempA_1_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_6}, i64 0, metadata !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_7}, i64 0, metadata !65), !dbg !59 ; [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 !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] %tempA_0_1 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_2_read, i9 64, i9 95), !dbg !59 ; [#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 !59 ; [#uses=4 type=i1] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %tempA_0_1}, i64 0, metadata !68), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][1]] call void @llvm.dbg.value(metadata !{i32 %tempA_0_1}, i64 0, metadata !61), !dbg !59 ; [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 !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] %tempA_0_3_10 = select i1 %cond, i32 %tempA_0_1, i32 %tempA_0_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_0_3_10}, i64 0, metadata !61), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[0][3]] %indvar_next_3 = add i4 4, %indvar ; [#uses=1 type=i4] %tempA_1_1 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_2_read, i9 96, i9 127), !dbg !59 ; [#uses=2 type=i32] [debug line = 6:2] call void @llvm.dbg.value(metadata !{i32 %tempA_1_1}, i64 0, metadata !69), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][1]] call void @llvm.dbg.value(metadata !{i32 %tempA_1_1}, i64 0, metadata !65), !dbg !59 ; [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 !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] %tempA_1_3_10 = select i1 %cond, i32 %tempA_1_1, i32 %tempA_1_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempA_1_3_10}, i64 0, metadata !65), !dbg !59 ; [debug line = 6:2] [debug variable = tempA[1][3]] 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=4 type=i32] %tempB_1_2_s = phi i32 [ %tempB_1_3_6, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=4 type=i32] %tempB_1_1_s = phi i32 [ %tempB_1_3_10, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %tempB_1_3_7 = phi i32 [ %tempB_1_3_8, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %tempB_0_3 = phi i32 [ %tempB_0_3_2, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=4 type=i32] %tempB_0_2_s = phi i32 [ %tempB_0_3_6, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=4 type=i32] %tempB_0_1_s = phi i32 [ %tempB_0_3_10, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %tempB_0_3_7 = phi i32 [ %tempB_0_3_8, %burst.rd.body6.0_ifconv ], [ undef, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i32] %indvar7 = phi i4 [ %indvar_next8_3, %burst.rd.body6.0_ifconv ], [ 0, %burst.rd.header5.0.preheader ] ; [#uses=3 type=i4] %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 br label %burst.rd.end4.0, !dbg !70 ; [debug line = 8:33] burst.rd.body6.0_ifconv: ; preds = %burst.rd.header5.0 %empty_8 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) ; [#uses=0 type=i32] %burstread_rbegin1 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @burstread_OC_region_s) nounwind ; [#uses=1 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @p_str7) call void (...)* @_ssdm_op_SpecLoopName([15 x i8]* @memcpy_OC_tempB_OC_B) %gmem_addr_1_read = call i128 @_ssdm_op_Read.m_axi.i128P(i128* %gmem_addr_1), !dbg !60 ; [#uses=4 type=i128] [debug line = 7:2] %tempB_0_3_11 = trunc i128 %gmem_addr_1_read to i32, !dbg !60 ; [#uses=3 type=i32] [debug line = 7:2] %newIndex66_t = call i2 @_ssdm_op_PartSelect.i2.i4.i32.i32(i4 %indvar7, i32 1, i32 2) ; [#uses=3 type=i2] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_11}, i64 0, metadata !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_11}, i64 0, metadata !74), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][0]] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_11}, i64 0, metadata !75), !dbg !60 ; [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 !72), !dbg !60 ; [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 !72), !dbg !60 ; [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_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_5}, i64 0, metadata !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] %tempB_0_3_6 = select i1 %sel_tmp8, i32 %tempB_0_2_s, i32 %tempB_0_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_6}, i64 0, metadata !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_7}, i64 0, metadata !72), !dbg !60 ; [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 !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] %burstread_rend12_0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @burstread_OC_region_s, i32 %burstread_rbegin1) nounwind ; [#uses=0 type=i32] %tempB_1_3_11 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_1_read, i9 32, i9 63), !dbg !60 ; [#uses=3 type=i32] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_11}, i64 0, metadata !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_11}, i64 0, metadata !77), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][0]] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_11}, i64 0, metadata !78), !dbg !60 ; [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 !76), !dbg !60 ; [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 !76), !dbg !60 ; [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_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_5}, i64 0, metadata !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] %tempB_1_3_6 = select i1 %sel_tmp8, i32 %tempB_1_2_s, i32 %tempB_1_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_6}, i64 0, metadata !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_7}, i64 0, metadata !76), !dbg !60 ; [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 !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] %tempB_0_1 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_1_read, i9 64, i9 95), !dbg !60 ; [#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 !60 ; [#uses=4 type=i1] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %tempB_0_1}, i64 0, metadata !79), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][1]] call void @llvm.dbg.value(metadata !{i32 %tempB_0_1}, i64 0, metadata !72), !dbg !60 ; [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 !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] %tempB_0_3_10 = select i1 %cond1, i32 %tempB_0_1, i32 %tempB_0_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_0_3_10}, i64 0, metadata !72), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[0][3]] %indvar_next8_3 = add i4 4, %indvar7 ; [#uses=1 type=i4] %tempB_1_1 = call i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128 %gmem_addr_1_read, i9 96, i9 127), !dbg !60 ; [#uses=2 type=i32] [debug line = 7:2] call void @llvm.dbg.value(metadata !{i32 %tempB_1_1}, i64 0, metadata !80), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][1]] call void @llvm.dbg.value(metadata !{i32 %tempB_1_1}, i64 0, metadata !76), !dbg !60 ; [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 !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] %tempB_1_3_10 = select i1 %cond1, i32 %tempB_1_1, i32 %tempB_1_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempB_1_3_10}, i64 0, metadata !76), !dbg !60 ; [debug line = 7:2] [debug variable = tempB[1][3]] 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=4 type=i32] %tempResult_1_2_s = phi i32 [ %tempResult_1_3_6, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=4 type=i32] %tempResult_1_1_s = phi i32 [ %tempResult_1_3_10, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %tempResult_1_3_7 = phi i32 [ %tempResult_1_3_8, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %tempResult_0_3 = phi i32 [ %tempResult_0_3_2, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=4 type=i32] %tempResult_0_2_s = phi i32 [ %tempResult_0_3_6, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=4 type=i32] %tempResult_0_1_s = phi i32 [ %tempResult_0_3_10, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %tempResult_0_3_7 = phi i32 [ %tempResult_0_3_8, %burst.rd.end4.1_ifconv ], [ undef, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i32] %i = phi i4 [ %i_1_3, %burst.rd.end4.1_ifconv ], [ 0, %burst.rd.end4.0.preheader ] ; [#uses=3 type=i4] %exitcond = icmp eq i4 %i, -8, !dbg !70 ; [#uses=1 type=i1] [debug line = 8:33] br i1 %exitcond, label %burst.wr.header.0.preheader, label %burst.rd.end4.1_ifconv, !dbg !70 ; [debug line = 8:33] burst.wr.header.0.preheader: ; preds = %burst.rd.end4.0 %gmem_addr_wr_req = call i1 @_ssdm_op_WriteReq.m_axi.i128P(i128* %gmem_addr, i32 2), !dbg !81 ; [#uses=0 type=i1] [debug line = 10:2] br label %burst.wr.header.0 burst.rd.end4.1_ifconv: ; preds = %burst.rd.end4.0 %empty_9 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) nounwind ; [#uses=0 type=i32] call void (...)* @_ssdm_op_SpecLoopName([17 x i8]* @p_str5) nounwind, !dbg !82 ; [debug line = 10:2] %tmp_8 = call i32 (...)* @_ssdm_op_SpecRegionBegin([17 x i8]* @p_str5) nounwind, !dbg !82 ; [#uses=1 type=i32] [debug line = 10:2] call void (...)* @_ssdm_op_SpecPipeline(i32 -1, i32 1, i32 1, i32 0, [1 x i8]* @p_str1) nounwind, !dbg !84 ; [debug line = 10:1] %newIndex126_t = call i2 @_ssdm_op_PartSelect.i2.i4.i32.i32(i4 %i, i32 1, i32 2) ; [#uses=7 type=i2] %tmp = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempA_0_3_7, i32 %tempA_0_1_s, i32 %tempA_0_2_s, i32 %tempA_0_3, i2 %newIndex126_t) ; [#uses=1 type=i32] %tmp_3 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempB_0_3_7, i32 %tempB_0_1_s, i32 %tempB_0_2_s, i32 %tempB_0_3, i2 %newIndex126_t) ; [#uses=1 type=i32] %tempResult_0_3_11 = mul nsw i32 %tmp_3, %tmp, !dbg !85 ; [#uses=3 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_11}, i64 0, metadata !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_11}, i64 0, metadata !88), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][0]] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_11}, i64 0, metadata !89), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][2]] %sel_tmp1 = icmp eq i2 %newIndex126_t, -2 ; [#uses=4 type=i1] %tempResult_0_3_4 = select i1 %sel_tmp1, 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 !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %sel_tmp3 = icmp eq i2 %newIndex126_t, 0 ; [#uses=6 type=i1] %tempResult_0_3_1 = select i1 %sel_tmp3, 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 !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tempResult_0_3_5 = select i1 %sel_tmp1, i32 %tempResult_0_3_11, i32 %tempResult_0_2_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_5}, i64 0, metadata !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tempResult_0_3_6 = select i1 %sel_tmp3, i32 %tempResult_0_2_s, i32 %tempResult_0_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_6}, i64 0, metadata !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_7}, i64 0, metadata !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tempResult_0_3_8 = select i1 %sel_tmp3, 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 !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %empty_10 = call i32 (...)* @_ssdm_op_SpecRegionEnd([17 x i8]* @p_str5, i32 %tmp_8) nounwind, !dbg !90 ; [#uses=0 type=i32] [debug line = 9:35] %tmp_4 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempA_1_3_7, i32 %tempA_1_1_s, i32 %tempA_1_2_s, i32 %tempA_1_3, i2 %newIndex126_t) ; [#uses=1 type=i32] %tmp_7 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempB_1_3_7, i32 %tempB_1_1_s, i32 %tempB_1_2_s, i32 %tempB_1_3, i2 %newIndex126_t) ; [#uses=1 type=i32] %tempResult_1_3_11 = mul nsw i32 %tmp_7, %tmp_4, !dbg !85 ; [#uses=3 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_11}, i64 0, metadata !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_11}, i64 0, metadata !92), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][0]] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_11}, i64 0, metadata !93), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][2]] %tempResult_1_3_4 = select i1 %sel_tmp1, 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 !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %tempResult_1_3_1 = select i1 %sel_tmp3, 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 !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %tempResult_1_3_5 = select i1 %sel_tmp1, i32 %tempResult_1_3_11, i32 %tempResult_1_2_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_5}, i64 0, metadata !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %tempResult_1_3_6 = select i1 %sel_tmp3, i32 %tempResult_1_2_s, i32 %tempResult_1_3_5 ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_6}, i64 0, metadata !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_7}, i64 0, metadata !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %tempResult_1_3_8 = select i1 %sel_tmp3, 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 !91), !dbg !85 ; [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_3_7, i32 %tempA_0_1_s, i32 %tempA_0_2_s, i32 %tempA_0_3, i2 %newIndex116_t) ; [#uses=1 type=i32] %tmp_5 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempB_0_3_7, i32 %tempB_0_1_s, i32 %tempB_0_2_s, i32 %tempB_0_3, i2 %newIndex116_t) ; [#uses=1 type=i32] %tempResult_0_1 = mul nsw i32 %tmp_5, %tmp_9, !dbg !85 ; [#uses=2 type=i32] [debug line = 9:1] %cond2 = icmp eq i2 %newIndex116_t, 1, !dbg !85 ; [#uses=4 type=i1] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_1}, i64 0, metadata !94), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][1]] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_1}, i64 0, metadata !86), !dbg !85 ; [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 !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tempResult_0_3_10 = select i1 %cond2, i32 %tempResult_0_1, i32 %tempResult_0_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_0_3_10}, i64 0, metadata !86), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[0][3]] %tmp_6 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempA_1_3_7, i32 %tempA_1_1_s, i32 %tempA_1_2_s, i32 %tempA_1_3, i2 %newIndex116_t) ; [#uses=1 type=i32] %tmp_10 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempB_1_3_7, i32 %tempB_1_1_s, i32 %tempB_1_2_s, i32 %tempB_1_3, i2 %newIndex116_t) ; [#uses=1 type=i32] %tempResult_1_1 = mul nsw i32 %tmp_10, %tmp_6, !dbg !85 ; [#uses=2 type=i32] [debug line = 9:1] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_1}, i64 0, metadata !95), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][1]] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_1}, i64 0, metadata !91), !dbg !85 ; [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 !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %tempResult_1_3_10 = select i1 %cond2, i32 %tempResult_1_1, i32 %tempResult_1_1_s ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %tempResult_1_3_10}, i64 0, metadata !91), !dbg !85 ; [debug line = 9:1] [debug variable = tempResult[1][3]] %i_1_3 = add i4 %i, 4, !dbg !96 ; [#uses=1 type=i4] [debug line = 8:42] br label %burst.rd.end4.0, !dbg !96 ; [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=3 type=i4] %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 %empty_11 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 2, i64 2, i64 2) nounwind ; [#uses=0 type=i32] %burstwrite_rbegin = call i32 (...)* @_ssdm_op_SpecRegionBegin([18 x i8]* @burstwrite_OC_region) nounwind ; [#uses=1 type=i32] call void (...)* @_ssdm_op_SpecPipeline(i32 1, i32 1, i32 1, i32 0, [1 x i8]* @p_str9) call void (...)* @_ssdm_op_SpecLoopName([29 x i8]* @memcpy_OC_result_OC_s) %newIndex26_t = call i2 @_ssdm_op_PartSelect.i2.i4.i32.i32(i4 %indvar1, i32 1, i32 2) ; [#uses=3 type=i2] %tmp_12 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempResult_0_3_7, i32 %tempResult_0_1_s, i32 %tempResult_0_2_s, i32 %tempResult_0_3, i2 %newIndex26_t) ; [#uses=1 type=i32] %burstwrite_rend_0 = call i32 (...)* @_ssdm_op_SpecRegionEnd([18 x i8]* @burstwrite_OC_region, i32 %burstwrite_rbegin) nounwind ; [#uses=0 type=i32] %tmp_13 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempResult_1_3_7, i32 %tempResult_1_1_s, i32 %tempResult_1_2_s, i32 %tempResult_1_3, i2 %newIndex26_t) ; [#uses=1 type=i32] %newIndex16_t = or i2 %newIndex26_t, 1 ; [#uses=2 type=i2] %tmp_14 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempResult_0_3_7, i32 %tempResult_0_1_s, i32 %tempResult_0_2_s, i32 %tempResult_0_3, i2 %newIndex16_t) ; [#uses=1 type=i32] %indvar_next1_3 = add i4 %indvar1, 4 ; [#uses=1 type=i4] %tmp_15 = call i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32 %tempResult_1_3_7, i32 %tempResult_1_1_s, i32 %tempResult_1_2_s, i32 %tempResult_1_3, i2 %newIndex16_t) ; [#uses=1 type=i32] %tmp_11 = call i128 @_ssdm_op_BitConcatenate.i128.i32.i32.i32.i32(i32 %tmp_15, i32 %tmp_14, i32 %tmp_13, i32 %tmp_12), !dbg !81 ; [#uses=1 type=i128] [debug line = 10:2] call void @_ssdm_op_Write.m_axi.i128P(i128* %gmem_addr, i128 %tmp_11, i16 -1), !dbg !81 ; [debug line = 10:2] br label %burst.wr.header.0 memcpy.tail: ; preds = %burst.wr.header.0 %gmem_addr_wr_resp = call i1 @_ssdm_op_WriteResp.m_axi.i128P(i128* %gmem_addr), !dbg !81 ; [#uses=0 type=i1] [debug line = 10:2] ret void, !dbg !97 ; [debug line = 11:1] } ; [#uses=1] declare i4 @llvm.part.select.i4(i4, i32, i32) nounwind readnone ; [#uses=1] declare i32 @llvm.part.select.i32(i32, i32, i32) nounwind readnone ; [#uses=1] declare i128 @llvm.part.select.i128(i128, i32, i32) nounwind readnone ; [#uses=84] declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone ; [#uses=1] define weak i1 @_ssdm_op_WriteResp.m_axi.i128P(i128*) { entry: ret i1 true } ; [#uses=1] define weak i1 @_ssdm_op_WriteReq.m_axi.i128P(i128*, i32) { entry: ret i1 true } ; [#uses=1] define weak void @_ssdm_op_Write.m_axi.i128P(i128*, i128, i16) { entry: ret void } ; [#uses=1] define weak void @_ssdm_op_SpecTopModule(...) { entry: ret void } ; [#uses=4] define weak i32 @_ssdm_op_SpecRegionEnd(...) { entry: ret i32 0 } ; [#uses=4] define weak i32 @_ssdm_op_SpecRegionBegin(...) { entry: ret i32 0 } ; [#uses=4] define weak void @_ssdm_op_SpecPipeline(...) nounwind { entry: ret void } ; [#uses=4] define weak i32 @_ssdm_op_SpecLoopTripCount(...) { entry: ret i32 0 } ; [#uses=4] define weak void @_ssdm_op_SpecLoopName(...) nounwind { entry: ret void } ; [#uses=5] define weak void @_ssdm_op_SpecInterface(...) nounwind { entry: ret void } ; [#uses=1] define weak void @_ssdm_op_SpecBitsMap(...) { entry: ret void } ; [#uses=2] define weak i1 @_ssdm_op_ReadReq.m_axi.i128P(i128*, i32) { entry: ret i1 true } ; [#uses=3] define weak i32 @_ssdm_op_Read.s_axilite.i32(i32) { entry: ret i32 %0 } ; [#uses=2] define weak i128 @_ssdm_op_Read.m_axi.i128P(i128*) { entry: %empty = load i128* %0 ; [#uses=1 type=i128] ret i128 %empty } ; [#uses=6] define weak i32 @_ssdm_op_PartSelect.i32.i128.i9.i9(i128, i9, i9) nounwind readnone { entry: %empty = zext i9 %1 to i32 ; [#uses=1 type=i32] %empty_12 = zext i9 %2 to i32 ; [#uses=1 type=i32] %empty_13 = call i128 @llvm.part.select.i128(i128 %0, i32 %empty, i32 %empty_12) ; [#uses=1 type=i128] %empty_14 = trunc i128 %empty_13 to i32 ; [#uses=1 type=i32] ret i32 %empty_14 } ; [#uses=0] declare i32 @_ssdm_op_PartSelect.i32.i128.i32.i32(i128, i32, i32) nounwind readnone ; [#uses=3] define weak i28 @_ssdm_op_PartSelect.i28.i32.i32.i32(i32, i32, i32) nounwind readnone { entry: %empty = call i32 @llvm.part.select.i32(i32 %0, i32 %1, i32 %2) ; [#uses=1 type=i32] %empty_15 = trunc i32 %empty to i28 ; [#uses=1 type=i28] ret i28 %empty_15 } ; [#uses=4] define weak i2 @_ssdm_op_PartSelect.i2.i4.i32.i32(i4, i32, i32) nounwind readnone { entry: %empty = call i4 @llvm.part.select.i4(i4 %0, i32 %1, i32 %2) ; [#uses=1 type=i4] %empty_16 = trunc i4 %empty to i2 ; [#uses=1 type=i2] ret i2 %empty_16 } ; [#uses=12] define weak i32 @_ssdm_op_Mux.ap_auto.4i32.i2(i32, i32, i32, i32, i2) { entry: switch i2 %4, label %case3 [ i2 0, label %case0 i2 1, label %case1 i2 -2, label %case2 ] case0: ; preds = %case3, %case2, %case1, %entry %merge = phi i32 [ %0, %entry ], [ %1, %case1 ], [ %2, %case2 ], [ %3, %case3 ] ; [#uses=1 type=i32] ret i32 %merge case1: ; preds = %entry br label %case0 case2: ; preds = %entry br label %case0 case3: ; preds = %entry br label %case0 } ; [#uses=1] define weak i128 @_ssdm_op_BitConcatenate.i128.i32.i32.i32.i32(i32, i32, i32, i32) nounwind readnone { entry: %empty = zext i32 %2 to i64 ; [#uses=1 type=i64] %empty_17 = zext i32 %3 to i64 ; [#uses=1 type=i64] %empty_18 = shl i64 %empty, 32 ; [#uses=1 type=i64] %empty_19 = or i64 %empty_18, %empty_17 ; [#uses=1 type=i64] %empty_20 = zext i32 %1 to i96 ; [#uses=1 type=i96] %empty_21 = zext i64 %empty_19 to i96 ; [#uses=1 type=i96] %empty_22 = shl i96 %empty_20, 64 ; [#uses=1 type=i96] %empty_23 = or i96 %empty_22, %empty_21 ; [#uses=1 type=i96] %empty_24 = zext i32 %0 to i128 ; [#uses=1 type=i128] %empty_25 = zext i96 %empty_23 to i128 ; [#uses=1 type=i128] %empty_26 = shl i128 %empty_24, 96 ; [#uses=1 type=i128] %empty_27 = or i128 %empty_26, %empty_25 ; [#uses=1 type=i128] ret i128 %empty_27 } !opencl.kernels = !{!0} !hls.encrypted.func = !{} !llvm.map.gv = !{} !axi4.master.portmap = !{!7} !axi4.slave.bundlemap = !{!8, !9, !10} !0 = metadata !{null, metadata !1, metadata !2, metadata !3, metadata !4, metadata !5, metadata !6} !1 = metadata !{metadata !"kernel_arg_addr_space", i32 1, i32 1, i32 1} !2 = metadata !{metadata !"kernel_arg_access_qual", metadata !"none", metadata !"none", metadata !"none"} !3 = metadata !{metadata !"kernel_arg_type", metadata !"int*", metadata !"int*", metadata !"int*"} !4 = metadata !{metadata !"kernel_arg_type_qual", metadata !"", metadata !"", metadata !""} !5 = metadata !{metadata !"kernel_arg_name", metadata !"A", metadata !"B", metadata !"result"} !6 = metadata !{metadata !"reqd_work_group_size", i32 1, i32 1, i32 1} !7 = metadata !{metadata !"gmem", metadata !"A", metadata !"READONLY", metadata !"B", metadata !"READONLY", metadata !"result", metadata !"WRITEONLY"} !8 = metadata !{metadata !"A", metadata !""} !9 = metadata !{metadata !"B", metadata !""} !10 = metadata !{metadata !"result", metadata !""} !11 = metadata !{i32 786689, metadata !12, metadata !"result", null, i32 4, metadata !20, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !12 = metadata !{i32 786478, i32 0, metadata !13, metadata !"vector_mult", metadata !"vector_mult", metadata !"_Z11vector_multPiS_S_", metadata !13, i32 4, metadata !14, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, null, null, null, metadata !18, i32 4} ; [ DW_TAG_subprogram ] !13 = metadata !{i32 786473, metadata !"vector_mult/vector_mult.cpp", metadata !"/home/hakta/Documents", null} ; [ DW_TAG_file_type ] !14 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !15, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] !15 = metadata !{null, metadata !16, metadata !16, metadata !16} !16 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !17} ; [ DW_TAG_pointer_type ] !17 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !18 = metadata !{metadata !19} !19 = metadata !{i32 786468} ; [ DW_TAG_base_type ] !20 = metadata !{i32 786433, null, metadata !"", null, i32 0, i64 256, i64 32, i32 0, i32 0, metadata !17, metadata !21, i32 0, i32 0} ; [ DW_TAG_array_type ] !21 = metadata !{metadata !22} !22 = metadata !{i32 786465, i64 0, i64 7} ; [ DW_TAG_subrange_type ] !23 = metadata !{i32 4, i32 42, metadata !12, null} !24 = metadata !{i32 786689, metadata !12, metadata !"B", null, i32 4, metadata !20, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !25 = metadata !{i32 4, i32 32, metadata !12, null} !26 = metadata !{i32 786689, metadata !12, metadata !"A", null, i32 4, metadata !20, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !27 = metadata !{i32 4, i32 22, metadata !12, null} !28 = metadata !{metadata !29, metadata !36, metadata !43, metadata !50} !29 = metadata !{i32 0, i32 31, metadata !30} !30 = metadata !{metadata !31, metadata !34, metadata !35} !31 = metadata !{metadata !"A", metadata !32, metadata !"int", i32 0, i32 31} !32 = metadata !{metadata !33} !33 = metadata !{i32 0, i32 4, i32 4} !34 = metadata !{metadata !"B", metadata !32, metadata !"int", i32 0, i32 31} !35 = metadata !{metadata !"result", metadata !32, metadata !"int", i32 0, i32 31} !36 = metadata !{i32 32, i32 63, metadata !37} !37 = metadata !{metadata !38, metadata !41, metadata !42} !38 = metadata !{metadata !"A", metadata !39, metadata !"int", i32 0, i32 31} !39 = metadata !{metadata !40} !40 = metadata !{i32 1, i32 5, i32 4} !41 = metadata !{metadata !"B", metadata !39, metadata !"int", i32 0, i32 31} !42 = metadata !{metadata !"result", metadata !39, metadata !"int", i32 0, i32 31} !43 = metadata !{i32 64, i32 95, metadata !44} !44 = metadata !{metadata !45, metadata !48, metadata !49} !45 = metadata !{metadata !"A", metadata !46, metadata !"int", i32 0, i32 31} !46 = metadata !{metadata !47} !47 = metadata !{i32 2, i32 6, i32 4} !48 = metadata !{metadata !"B", metadata !46, metadata !"int", i32 0, i32 31} !49 = metadata !{metadata !"result", metadata !46, metadata !"int", i32 0, i32 31} !50 = metadata !{i32 96, i32 127, metadata !51} !51 = metadata !{metadata !52, metadata !55, metadata !56} !52 = metadata !{metadata !"A", metadata !53, metadata !"int", i32 0, i32 31} !53 = metadata !{metadata !54} !54 = metadata !{i32 3, i32 7, i32 4} !55 = metadata !{metadata !"B", metadata !53, metadata !"int", i32 0, i32 31} !56 = metadata !{metadata !"result", metadata !53, metadata !"int", i32 0, i32 31} !57 = metadata !{i32 5, i32 1, metadata !58, null} !58 = metadata !{i32 786443, metadata !12, i32 4, i32 53, metadata !13, i32 0} ; [ DW_TAG_lexical_block ] !59 = metadata !{i32 6, i32 2, metadata !58, null} !60 = metadata !{i32 7, i32 2, metadata !58, null} !61 = metadata !{i32 790529, metadata !62, metadata !"tempA[0][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !62 = metadata !{i32 786688, metadata !58, metadata !"tempA", metadata !13, i32 5, metadata !20, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !63 = metadata !{i32 790529, metadata !62, metadata !"tempA[0][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !64 = metadata !{i32 790529, metadata !62, metadata !"tempA[0][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !65 = metadata !{i32 790529, metadata !62, metadata !"tempA[1][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !66 = metadata !{i32 790529, metadata !62, metadata !"tempA[1][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !67 = metadata !{i32 790529, metadata !62, metadata !"tempA[1][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !68 = metadata !{i32 790529, metadata !62, metadata !"tempA[0][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !69 = metadata !{i32 790529, metadata !62, metadata !"tempA[1][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !70 = metadata !{i32 8, i32 33, metadata !71, null} !71 = metadata !{i32 786443, metadata !58, i32 8, i32 19, metadata !13, i32 1} ; [ DW_TAG_lexical_block ] !72 = metadata !{i32 790529, metadata !73, metadata !"tempB[0][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !73 = metadata !{i32 786688, metadata !58, metadata !"tempB", metadata !13, i32 5, metadata !20, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !74 = metadata !{i32 790529, metadata !73, metadata !"tempB[0][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !75 = metadata !{i32 790529, metadata !73, metadata !"tempB[0][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !76 = metadata !{i32 790529, metadata !73, metadata !"tempB[1][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !77 = metadata !{i32 790529, metadata !73, metadata !"tempB[1][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !78 = metadata !{i32 790529, metadata !73, metadata !"tempB[1][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !79 = metadata !{i32 790529, metadata !73, metadata !"tempB[0][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !80 = metadata !{i32 790529, metadata !73, metadata !"tempB[1][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !81 = metadata !{i32 10, i32 2, metadata !58, null} !82 = metadata !{i32 10, i32 2, metadata !83, null} !83 = metadata !{i32 786443, metadata !71, i32 10, i32 1, metadata !13, i32 2} ; [ DW_TAG_lexical_block ] !84 = metadata !{i32 10, i32 1, metadata !83, null} !85 = metadata !{i32 9, i32 1, metadata !83, null} !86 = metadata !{i32 790529, metadata !87, metadata !"tempResult[0][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !87 = metadata !{i32 786688, metadata !58, metadata !"tempResult", metadata !13, i32 5, metadata !20, i32 0, i32 0} ; [ DW_TAG_auto_variable ] !88 = metadata !{i32 790529, metadata !87, metadata !"tempResult[0][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !89 = metadata !{i32 790529, metadata !87, metadata !"tempResult[0][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !90 = metadata !{i32 9, i32 35, metadata !83, null} !91 = metadata !{i32 790529, metadata !87, metadata !"tempResult[1][3]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !92 = metadata !{i32 790529, metadata !87, metadata !"tempResult[1][0]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !93 = metadata !{i32 790529, metadata !87, metadata !"tempResult[1][2]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !94 = metadata !{i32 790529, metadata !87, metadata !"tempResult[0][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !95 = metadata !{i32 790529, metadata !87, metadata !"tempResult[1][1]", null, i32 5, metadata !17, i32 0, i32 0} ; [ DW_TAG_auto_variable_field ] !96 = metadata !{i32 8, i32 42, metadata !71, null} !97 = metadata !{i32 11, i32 1, metadata !58, null}