; ModuleID = '/home/hakta/Documents/vivado_test/solution3/.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(i512 %inA_V, i512 %inB_V, i1023 %inC_V, i1023 %inD_V, i1024* %out1_V, i513* %out2_V, i1024* %out3_V, i512* %out4_V) { call void (...)* @_ssdm_op_SpecBitsMap(i512 %inA_V), !map !45 call void (...)* @_ssdm_op_SpecBitsMap(i512 %inB_V), !map !51 call void (...)* @_ssdm_op_SpecBitsMap(i1023 %inC_V), !map !55 call void (...)* @_ssdm_op_SpecBitsMap(i1023 %inD_V), !map !59 call void (...)* @_ssdm_op_SpecBitsMap(i1024* %out1_V), !map !63 call void (...)* @_ssdm_op_SpecBitsMap(i513* %out2_V), !map !67 call void (...)* @_ssdm_op_SpecBitsMap(i1024* %out3_V), !map !71 call void (...)* @_ssdm_op_SpecBitsMap(i512* %out4_V), !map !75 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @apint_arith_str) nounwind %inD_V_read = call i1023 @_ssdm_op_Read.s_axilite.i1023(i1023 %inD_V) %inC_V_read = call i1023 @_ssdm_op_Read.s_axilite.i1023(i1023 %inC_V) %inB_V_read = call i512 @_ssdm_op_Read.s_axilite.i512(i512 %inB_V) %inA_V_read = call i512 @_ssdm_op_Read.s_axilite.i512(i512 %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(i1023 %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(i1023 %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(i512 %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(i512 %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 i512 %inA_V_read to i1024 %rhs_V = sext i512 %inB_V_read to i1024 %r_V = mul nsw i1024 %rhs_V, %lhs_V call void @_ssdm_op_Write.ap_auto.i1024P(i1024* %out1_V, i1024 %r_V) %lhs_V_1 = sext i512 %inB_V_read to i513 %rhs_V_1 = sext i512 %inA_V_read to i513 %r_V_1 = add nsw i513 %lhs_V_1, %rhs_V_1 call void @_ssdm_op_Write.ap_auto.i513P(i513* %out2_V, i513 %r_V_1) %tmp = sext i512 %inA_V_read to i1023 %tmp_1 = sdiv i1023 %inC_V_read, %tmp %r_V_2 = sext i1023 %tmp_1 to i1024 call void @_ssdm_op_Write.ap_auto.i1024P(i1024* %out3_V, i1024 %r_V_2) %tmp_2 = srem i1023 %inD_V_read, %tmp %r_V_3 = trunc i1023 %tmp_2 to i512 call void @_ssdm_op_Write.ap_auto.i512P(i512* %out4_V, i512 %r_V_3) ret void } define weak void @_ssdm_op_Write.ap_auto.i513P(i513*, i513) { entry: store i513 %1, i513* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i512P(i512*, i512) { entry: store i512 %1, i512* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i1024P(i1024*, i1024) { entry: store i1024 %1, i1024* %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 i512 @_ssdm_op_Read.s_axilite.i512(i512) { entry: ret i512 %0 } define weak i1023 @_ssdm_op_Read.s_axilite.i1023(i1023) { entry: ret i1023 %0 } declare i512 @_ssdm_op_PartSelect.i512.i1023.i32.i32(i1023, i32, i32) nounwind readnone !opencl.kernels = !{!0, !7, !7, !13, !13, !19, !22, !13, !22, !13, !13, !13, !28, !28, !13, !13, !30, !32, !13, !7, !7, !34, !34, !36, !32, !7, !7} !hls.encrypted.func = !{} !llvm.map.gv = !{!38} !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<512, 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<512> &"} !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<1023, true> &", metadata !"const ap_int_base<512, 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<513, 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<513> &"} !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<512, true> &", metadata !"const ap_int_base<512, 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<1024, 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<1024> &"} !38 = metadata !{metadata !39, [0 x i32]* @llvm_global_ctors_0} !39 = metadata !{metadata !40} !40 = metadata !{i32 0, i32 31, metadata !41} !41 = metadata !{metadata !42} !42 = metadata !{metadata !"llvm.global_ctors.0", metadata !43, metadata !"", i32 0, i32 31} !43 = metadata !{metadata !44} !44 = metadata !{i32 0, i32 0, i32 1} !45 = metadata !{metadata !46} !46 = metadata !{i32 0, i32 511, metadata !47} !47 = metadata !{metadata !48} !48 = metadata !{metadata !"inA.V", metadata !49, metadata !"int512", i32 0, i32 511} !49 = metadata !{metadata !50} !50 = metadata !{i32 0, i32 0, i32 0} !51 = metadata !{metadata !52} !52 = metadata !{i32 0, i32 511, metadata !53} !53 = metadata !{metadata !54} !54 = metadata !{metadata !"inB.V", metadata !49, metadata !"int512", i32 0, i32 511} !55 = metadata !{metadata !56} !56 = metadata !{i32 0, i32 1022, metadata !57} !57 = metadata !{metadata !58} !58 = metadata !{metadata !"inC.V", metadata !49, metadata !"int1023", i32 0, i32 1022} !59 = metadata !{metadata !60} !60 = metadata !{i32 0, i32 1022, metadata !61} !61 = metadata !{metadata !62} !62 = metadata !{metadata !"inD.V", metadata !49, metadata !"int1023", i32 0, i32 1022} !63 = metadata !{metadata !64} !64 = metadata !{i32 0, i32 1023, metadata !65} !65 = metadata !{metadata !66} !66 = metadata !{metadata !"out1.V", metadata !43, metadata !"int1024", i32 0, i32 1023} !67 = metadata !{metadata !68} !68 = metadata !{i32 0, i32 512, metadata !69} !69 = metadata !{metadata !70} !70 = metadata !{metadata !"out2.V", metadata !43, metadata !"int513", i32 0, i32 512} !71 = metadata !{metadata !72} !72 = metadata !{i32 0, i32 1023, metadata !73} !73 = metadata !{metadata !74} !74 = metadata !{metadata !"out3.V", metadata !43, metadata !"int1024", i32 0, i32 1023} !75 = metadata !{metadata !76} !76 = metadata !{i32 0, i32 511, metadata !77} !77 = metadata !{metadata !78} !78 = metadata !{metadata !"out4.V", metadata !43, metadata !"int512", i32 0, i32 511}