; ModuleID = '/home/hakta/Documents/vector_mult/solution1/.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]*] @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_str4 = private unnamed_addr constant [17 x i8] c"vector_mult_loop\00", align 1 ; [#uses=3 type=[17 x i8]*] @p_str3 = private unnamed_addr constant [6 x i8] c"slave\00", align 1 ; [#uses=4 type=[6 x i8]*] @p_str2 = private unnamed_addr constant [6 x i8] c"m_axi\00", align 1 ; [#uses=1 type=[6 x i8]*] @p_str1 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 ; [#uses=24 type=[1 x i8]*] @p_str = private unnamed_addr constant [10 x i8] c"s_axilite\00", align 1 ; [#uses=1 type=[10 x i8]*] ; [#uses=0] define void @vector_mult(i32* %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 i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %result_read, i32 2, i32 31) ; [#uses=1 type=i30] %tmp_3 = zext i30 %result5 to i64 ; [#uses=1 type=i64] %gmem_addr = getelementptr i32* %gmem, i64 %tmp_3 ; [#uses=3 type=i32*] %tmp = call i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %B_read, i32 2, i32 31) ; [#uses=1 type=i30] %tmp_4_cast = zext i30 %tmp to i31 ; [#uses=1 type=i31] %tmp_4 = call i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %A_read, i32 2, i32 31) ; [#uses=1 type=i30] %tmp_5_cast = zext i30 %tmp_4 to i31 ; [#uses=1 type=i31] call void (...)* @_ssdm_op_SpecBitsMap(i32* %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_str, 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 !36 ; [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_str3, [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_str3, [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* %gmem, [6 x i8]* @p_str2, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [1 x i8]* @p_str1, [6 x i8]* @p_str3, [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_str3, [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_wr_req = call i1 @_ssdm_op_WriteReq.m_axi.i32P(i32* %gmem_addr, i32 8), !dbg !38 ; [#uses=0 type=i1] [debug line = 9:1] br label %1, !dbg !41 ; [debug line = 8:33] ;