; ModuleID = '/home/hakta/Documents/vivado_test/solution2/.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" @llvm_global_ctors_1 = appending global [0 x void ()*] zeroinitializer @llvm_global_ctors_0 = appending global [0 x i32] zeroinitializer @apint_arith_str = internal unnamed_addr constant [12 x i8] c"apint_arith\00" @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 declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone define void @apint_arith(i24 %inA_V, i32 %inB_V, i40 %inC_V, i48 %inD_V, i56* %out1_V, i33* %out2_V, i48* %out3_V, i24* %out4_V) { call void (...)* @_ssdm_op_SpecBitsMap(i24 %inA_V), !map !55 call void (...)* @_ssdm_op_SpecBitsMap(i32 %inB_V), !map !61 call void (...)* @_ssdm_op_SpecBitsMap(i40 %inC_V), !map !65 call void (...)* @_ssdm_op_SpecBitsMap(i48 %inD_V), !map !69 call void (...)* @_ssdm_op_SpecBitsMap(i56* %out1_V), !map !73 call void (...)* @_ssdm_op_SpecBitsMap(i33* %out2_V), !map !77 call void (...)* @_ssdm_op_SpecBitsMap(i48* %out3_V), !map !81 call void (...)* @_ssdm_op_SpecBitsMap(i24* %out4_V), !map !85 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @apint_arith_str) nounwind %inD_V_read = call i48 @_ssdm_op_Read.s_axilite.i48(i48 %inD_V) %inC_V_read = call i40 @_ssdm_op_Read.s_axilite.i40(i40 %inC_V) %inB_V_read = call i32 @_ssdm_op_Read.s_axilite.i32(i32 %inB_V) %inA_V_read = call i24 @_ssdm_op_Read.s_axilite.i24(i24 %inA_V) 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(i48 %inD_V, [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(i40 %inC_V, [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 %inB_V, [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(i24 %inA_V, [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 %lhs_V = sext i24 %inA_V_read to i56 %rhs_V = sext i32 %inB_V_read to i56 %r_V = mul nsw i56 %rhs_V, %lhs_V call void @_ssdm_op_Write.ap_auto.i56P(i56* %out1_V, i56 %r_V) %lhs_V_1 = sext i32 %inB_V_read to i33 %rhs_V_1 = sext i24 %inA_V_read to i33 %r_V_1 = add nsw i33 %lhs_V_1, %rhs_V_1 call void @_ssdm_op_Write.ap_auto.i33P(i33* %out2_V, i33 %r_V_1) %tmp = sext i24 %inA_V_read to i40 %tmp_1 = sdiv i40 %inC_V_read, %tmp %tmp_2 = sext i40 %tmp_1 to i48 call void @_ssdm_op_Write.ap_auto.i48P(i48* %out3_V, i48 %tmp_2) %tmp_3 = sext i24 %inA_V_read to i48 %tmp_4 = srem i48 %inD_V_read, %tmp_3 %r_V_2 = trunc i48 %tmp_4 to i24 call void @_ssdm_op_Write.ap_auto.i24P(i24* %out4_V, i24 %r_V_2) ret void } define weak void @_ssdm_op_Write.ap_auto.i56P(i56*, i56) { entry: store i56 %1, i56* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i48P(i48*, i48) { entry: store i48 %1, i48* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i33P(i33*, i33) { entry: store i33 %1, i33* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i24P(i24*, i24) { entry: store i24 %1, i24* %0 ret void } define weak void @_ssdm_op_SpecTopModule(...) { entry: ret void } define weak void @_ssdm_op_SpecInterface(...) nounwind { entry: ret void } define weak void @_ssdm_op_SpecBitsMap(...) { entry: ret void } define weak i48 @_ssdm_op_Read.s_axilite.i48(i48) { entry: ret i48 %0 } define weak i40 @_ssdm_op_Read.s_axilite.i40(i40) { entry: ret i40 %0 } define weak i32 @_ssdm_op_Read.s_axilite.i32(i32) { entry: ret i32 %0 } define weak i24 @_ssdm_op_Read.s_axilite.i24(i24) { entry: ret i24 %0 } declare i24 @_ssdm_op_PartSelect.i24.i48.i32.i32(i48, i32, i32) nounwind readnone !opencl.kernels = !{!0, !7, !7, !13, !13, !19, !22, !13, !28, !28, !13, !13, !30, !32, !13, !13, !13, !34, !34, !13, !13, !36, !38, !13, !7, !7, !40, !40, !42, !42, !13, !13, !44, !46, !13, !40, !40, !7, !7} !hls.encrypted.func = !{} !llvm.map.gv = !{!48} !0 = metadata !{null, metadata !1, metadata !2, metadata !3, metadata !4, metadata !5, metadata !6} !1 = metadata !{metadata !"kernel_arg_addr_space", i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1} !2 = metadata !{metadata !"kernel_arg_access_qual", metadata !"none", metadata !"none", metadata !"none", metadata !"none", metadata !"none", metadata !"none", metadata !"none", metadata !"none"} !3 = metadata !{metadata !"kernel_arg_type", metadata !"dinA_t", metadata !"dinB_t", metadata !"dinC_t", metadata !"dinD_t", metadata !"dout1_t*", metadata !"dout2_t*", metadata !"dout3_t*", metadata !"dout4_t*"} !4 = metadata !{metadata !"kernel_arg_type_qual", metadata !"", metadata !"", metadata !"", metadata !"", metadata !"", metadata !"", metadata !"", metadata !""} !5 = metadata !{metadata !"kernel_arg_name", metadata !"inA", metadata !"inB", metadata !"inC", metadata !"inD", metadata !"out1", metadata !"out2", metadata !"out3", metadata !"out4"} !6 = metadata !{metadata !"reqd_work_group_size", i32 1, i32 1, i32 1} !7 = metadata !{null, metadata !8, metadata !9, metadata !10, metadata !11, metadata !12, metadata !6} !8 = metadata !{metadata !"kernel_arg_addr_space", i32 0} !9 = metadata !{metadata !"kernel_arg_access_qual", metadata !"none"} !10 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<24, true> &"} !11 = metadata !{metadata !"kernel_arg_type_qual", metadata !""} !12 = metadata !{metadata !"kernel_arg_name", metadata !"op"} !13 = metadata !{null, metadata !14, metadata !15, metadata !16, metadata !17, metadata !18, metadata !6} !14 = metadata !{metadata !"kernel_arg_addr_space"} !15 = metadata !{metadata !"kernel_arg_access_qual"} !16 = metadata !{metadata !"kernel_arg_type"} !17 = metadata !{metadata !"kernel_arg_type_qual"} !18 = metadata !{metadata !"kernel_arg_name"} !19 = metadata !{null, metadata !8, metadata !9, metadata !20, metadata !11, metadata !21, metadata !6} !20 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int<24> &"} !21 = metadata !{metadata !"kernel_arg_name", metadata !"op2"} !22 = metadata !{null, metadata !23, metadata !24, metadata !25, metadata !26, metadata !27, metadata !6} !23 = metadata !{metadata !"kernel_arg_addr_space", i32 0, i32 0} !24 = metadata !{metadata !"kernel_arg_access_qual", metadata !"none", metadata !"none"} !25 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<48, true> &", metadata !"const ap_int_base<24, true> &"} !26 = metadata !{metadata !"kernel_arg_type_qual", metadata !"", metadata !""} !27 = metadata !{metadata !"kernel_arg_name", metadata !"op", metadata !"op2"} !28 = metadata !{null, metadata !8, metadata !9, metadata !29, metadata !11, metadata !12, metadata !6} !29 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<41, true> &"} !30 = metadata !{null, metadata !8, metadata !9, metadata !31, metadata !11, metadata !21, metadata !6} !31 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int<48> &"} !32 = metadata !{null, metadata !23, metadata !24, metadata !33, metadata !26, metadata !27, metadata !6} !33 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<40, true> &", metadata !"const ap_int_base<24, true> &"} !34 = metadata !{null, metadata !8, metadata !9, metadata !35, metadata !11, metadata !12, metadata !6} !35 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<33, true> &"} !36 = metadata !{null, metadata !8, metadata !9, metadata !37, metadata !11, metadata !21, metadata !6} !37 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int<33> &"} !38 = metadata !{null, metadata !23, metadata !24, metadata !39, metadata !26, metadata !27, metadata !6} !39 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<32, true> &", metadata !"const ap_int_base<24, true> &"} !40 = metadata !{null, metadata !8, metadata !9, metadata !41, metadata !11, metadata !12, metadata !6} !41 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<32, true> &"} !42 = metadata !{null, metadata !8, metadata !9, metadata !43, metadata !11, metadata !12, metadata !6} !43 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<56, true> &"} !44 = metadata !{null, metadata !8, metadata !9, metadata !45, metadata !11, metadata !21, metadata !6} !45 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int<56> &"} !46 = metadata !{null, metadata !23, metadata !24, metadata !47, metadata !26, metadata !27, metadata !6} !47 = metadata !{metadata !"kernel_arg_type", metadata !"const ap_int_base<24, true> &", metadata !"const ap_int_base<32, true> &"} !48 = metadata !{metadata !49, [0 x i32]* @llvm_global_ctors_0} !49 = metadata !{metadata !50} !50 = metadata !{i32 0, i32 31, metadata !51} !51 = metadata !{metadata !52} !52 = metadata !{metadata !"llvm.global_ctors.0", metadata !53, metadata !"", i32 0, i32 31} !53 = metadata !{metadata !54} !54 = metadata !{i32 0, i32 0, i32 1} !55 = metadata !{metadata !56} !56 = metadata !{i32 0, i32 23, metadata !57} !57 = metadata !{metadata !58} !58 = metadata !{metadata !"inA.V", metadata !59, metadata !"int24", i32 0, i32 23} !59 = metadata !{metadata !60} !60 = metadata !{i32 0, i32 0, i32 0} !61 = metadata !{metadata !62} !62 = metadata !{i32 0, i32 31, metadata !63} !63 = metadata !{metadata !64} !64 = metadata !{metadata !"inB.V", metadata !59, metadata !"int32", i32 0, i32 31} !65 = metadata !{metadata !66} !66 = metadata !{i32 0, i32 39, metadata !67} !67 = metadata !{metadata !68} !68 = metadata !{metadata !"inC.V", metadata !59, metadata !"int40", i32 0, i32 39} !69 = metadata !{metadata !70} !70 = metadata !{i32 0, i32 47, metadata !71} !71 = metadata !{metadata !72} !72 = metadata !{metadata !"inD.V", metadata !59, metadata !"int48", i32 0, i32 47} !73 = metadata !{metadata !74} !74 = metadata !{i32 0, i32 55, metadata !75} !75 = metadata !{metadata !76} !76 = metadata !{metadata !"out1.V", metadata !53, metadata !"int56", i32 0, i32 55} !77 = metadata !{metadata !78} !78 = metadata !{i32 0, i32 32, metadata !79} !79 = metadata !{metadata !80} !80 = metadata !{metadata !"out2.V", metadata !53, metadata !"int33", i32 0, i32 32} !81 = metadata !{metadata !82} !82 = metadata !{i32 0, i32 47, metadata !83} !83 = metadata !{metadata !84} !84 = metadata !{metadata !"out3.V", metadata !53, metadata !"int48", i32 0, i32 47} !85 = metadata !{metadata !86} !86 = metadata !{i32 0, i32 23, metadata !87} !87 = metadata !{metadata !88} !88 = metadata !{metadata !"out4.V", metadata !53, metadata !"int24", i32 0, i32 23}