; ModuleID = '/home/hakta/Documents/vector_mult/solution0/.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" @mode5 = internal constant [10 x i8] c"s_axilite\00" @mode3 = internal constant [10 x i8] c"s_axilite\00" @mode = internal constant [10 x i8] c"s_axilite\00" @bundle6 = internal constant [1 x i8] zeroinitializer @bundle4 = internal constant [1 x i8] zeroinitializer @bundle = internal constant [1 x i8] zeroinitializer @p_str7 = private unnamed_addr constant [17 x i8] c"vector_mult_loop\00", align 1 @p_str6 = private unnamed_addr constant [2 x i8] c"A\00", align 1 @p_str5 = private unnamed_addr constant [2 x i8] c"B\00", align 1 @p_str4 = private unnamed_addr constant [6 x i8] c"slave\00", align 1 @p_str3 = private unnamed_addr constant [7 x i8] c"result\00", align 1 @p_str2 = private unnamed_addr constant [6 x i8] c"m_axi\00", align 1 @p_str1 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @p_str = private unnamed_addr constant [10 x i8] c"s_axilite\00", align 1 define void @vector_mult(i32* %A, i32* %B, i32* %result, i32 %A_offset, i32 %B_offset, i32 %result_offset) { %result_offset_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %result_offset) %B_offset_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %B_offset) %A_offset_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %A_offset) %result_offset5 = call i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %result_offset_read, i32 2, i32 31) %tmp_3 = zext i30 %result_offset5 to i64 %result_addr = getelementptr i32* %result, i64 %tmp_3 %B_offset3 = call i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %B_offset_read, i32 2, i32 31) %tmp_4 = zext i30 %B_offset3 to i64 %B_addr = getelementptr i32* %B, i64 %tmp_4 %A_offset1 = call i30 @_ssdm_op_PartSelect.i30.i32.i32.i32(i32 %A_offset_read, i32 2, i32 31) %tmp_5 = zext i30 %A_offset1 to i64 %A_addr = getelementptr i32* %A, i64 %tmp_5 call void (...)* @_ssdm_op_SpecBitsMap(i32* %result), !map !13 call void (...)* @_ssdm_op_SpecBitsMap(i32* %B), !map !19 call void (...)* @_ssdm_op_SpecBitsMap(i32* %A), !map !23 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @vector_mult_str) nounwind 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 call void (...)* @_ssdm_op_SpecInterface(i32* %result, [6 x i8]* @p_str2, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [7 x i8]* @p_str3, [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 %result_offset, [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, [6 x i8]* @p_str2, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [2 x i8]* @p_str5, [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_offset, [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(i32* %A, [6 x i8]* @p_str2, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 32, [2 x i8]* @p_str6, [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_offset, [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) %A_addr_rd_req = call i1 @_ssdm_op_ReadReq.m_axi.i32P(i32* %A_addr, i32 8) %B_addr_rd_req = call i1 @_ssdm_op_ReadReq.m_axi.i32P(i32* %B_addr, i32 8) %result_addr_wr_req = call i1 @_ssdm_op_WriteReq.m_axi.i32P(i32* %result_addr, i32 8) br label %1 ;