; ModuleID = '/home/hakta/Documents/vivado_test/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" @apint_arith_str = internal unnamed_addr constant [12 x i8] c"apint_arith\00" ; [#uses=1 type=[12 x i8]*] ; [#uses=12] declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone ; [#uses=0] define void @apint_arith(i8 signext %inA, i16 signext %inB, i32 %inC, i64 %inD, i32* %out1, i32* %out2, i32* %out3, i64* %out4) nounwind uwtable { call void (...)* @_ssdm_op_SpecBitsMap(i8 %inA) nounwind, !map !7 call void (...)* @_ssdm_op_SpecBitsMap(i16 %inB) nounwind, !map !13 call void (...)* @_ssdm_op_SpecBitsMap(i32 %inC) nounwind, !map !17 call void (...)* @_ssdm_op_SpecBitsMap(i64 %inD) nounwind, !map !21 call void (...)* @_ssdm_op_SpecBitsMap(i32* %out1) nounwind, !map !25 call void (...)* @_ssdm_op_SpecBitsMap(i32* %out2) nounwind, !map !31 call void (...)* @_ssdm_op_SpecBitsMap(i32* %out3) nounwind, !map !35 call void (...)* @_ssdm_op_SpecBitsMap(i64* %out4) nounwind, !map !39 call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @apint_arith_str) nounwind %inD_read = call i64 @_ssdm_op_Read.ap_auto.i64(i64 %inD) nounwind ; [#uses=1 type=i64] call void @llvm.dbg.value(metadata !{i64 %inD_read}, i64 0, metadata !43), !dbg !70 ; [debug line = 4:61] [debug variable = inD] %inC_read = call i32 @_ssdm_op_Read.ap_auto.i32(i32 %inC) nounwind ; [#uses=1 type=i32] call void @llvm.dbg.value(metadata !{i32 %inC_read}, i64 0, metadata !71), !dbg !72 ; [debug line = 4:49] [debug variable = inC] %inB_read = call i16 @_ssdm_op_Read.ap_auto.i16(i16 %inB) nounwind ; [#uses=2 type=i16] call void @llvm.dbg.value(metadata !{i16 %inB_read}, i64 0, metadata !73), !dbg !74 ; [debug line = 4:37] [debug variable = inB] %inA_read = call i8 @_ssdm_op_Read.ap_auto.i8(i8 %inA) nounwind ; [#uses=4 type=i8] call void @llvm.dbg.value(metadata !{i8 %inA_read}, i64 0, metadata !75), !dbg !76 ; [debug line = 4:25] [debug variable = inA] call void @llvm.dbg.value(metadata !{i8 %inA}, i64 0, metadata !75), !dbg !76 ; [debug line = 4:25] [debug variable = inA] call void @llvm.dbg.value(metadata !{i16 %inB}, i64 0, metadata !73), !dbg !74 ; [debug line = 4:37] [debug variable = inB] call void @llvm.dbg.value(metadata !{i32 %inC}, i64 0, metadata !71), !dbg !72 ; [debug line = 4:49] [debug variable = inC] call void @llvm.dbg.value(metadata !{i64 %inD}, i64 0, metadata !43), !dbg !70 ; [debug line = 4:61] [debug variable = inD] call void @llvm.dbg.value(metadata !{i32* %out1}, i64 0, metadata !77), !dbg !78 ; [debug line = 4:75] [debug variable = out1] call void @llvm.dbg.value(metadata !{i32* %out2}, i64 0, metadata !79), !dbg !80 ; [debug line = 4:90] [debug variable = out2] call void @llvm.dbg.value(metadata !{i32* %out3}, i64 0, metadata !81), !dbg !82 ; [debug line = 4:105] [debug variable = out3] call void @llvm.dbg.value(metadata !{i64* %out4}, i64 0, metadata !83), !dbg !84 ; [debug line = 4:120] [debug variable = out4] %tmp = sext i8 %inA_read to i32, !dbg !85 ; [#uses=1 type=i32] [debug line = 6:2] %tmp_cast2 = sext i8 %inA_read to i17, !dbg !85 ; [#uses=1 type=i17] [debug line = 6:2] %tmp_cast = sext i8 %inA_read to i24, !dbg !85 ; [#uses=1 type=i24] [debug line = 6:2] %tmp_1_cast1 = sext i16 %inB_read to i17, !dbg !85 ; [#uses=1 type=i17] [debug line = 6:2] %tmp_1_cast = sext i16 %inB_read to i24, !dbg !85 ; [#uses=1 type=i24] [debug line = 6:2] %tmp_2 = mul i24 %tmp_1_cast, %tmp_cast, !dbg !85 ; [#uses=1 type=i24] [debug line = 6:2] %tmp_2_cast = sext i24 %tmp_2 to i32, !dbg !85 ; [#uses=1 type=i32] [debug line = 6:2] call void @_ssdm_op_Write.ap_auto.i32P(i32* %out1, i32 %tmp_2_cast) nounwind, !dbg !85 ; [debug line = 6:2] %tmp_3 = add i17 %tmp_1_cast1, %tmp_cast2, !dbg !87 ; [#uses=1 type=i17] [debug line = 7:2] %tmp_3_cast = sext i17 %tmp_3 to i32, !dbg !87 ; [#uses=1 type=i32] [debug line = 7:2] call void @_ssdm_op_Write.ap_auto.i32P(i32* %out2, i32 %tmp_3_cast) nounwind, !dbg !87 ; [debug line = 7:2] %tmp_4 = sdiv i32 %inC_read, %tmp, !dbg !88 ; [#uses=1 type=i32] [debug line = 8:2] call void @_ssdm_op_Write.ap_auto.i32P(i32* %out3, i32 %tmp_4) nounwind, !dbg !88 ; [debug line = 8:2] %tmp_5 = sext i8 %inA_read to i64, !dbg !89 ; [#uses=1 type=i64] [debug line = 9:2] %tmp_6 = srem i64 %inD_read, %tmp_5, !dbg !89 ; [#uses=1 type=i64] [debug line = 9:2] call void @_ssdm_op_Write.ap_auto.i64P(i64* %out4, i64 %tmp_6) nounwind, !dbg !89 ; [debug line = 9:2] ret void, !dbg !90 ; [debug line = 10:1] } ; [#uses=1] define weak void @_ssdm_op_Write.ap_auto.i64P(i64*, i64) { entry: store i64 %1, i64* %0 ret void } ; [#uses=3] define weak void @_ssdm_op_Write.ap_auto.i32P(i32*, i32) { entry: store i32 %1, i32* %0 ret void } ; [#uses=1] define weak void @_ssdm_op_SpecTopModule(...) { entry: ret void } ; [#uses=8] define weak void @_ssdm_op_SpecBitsMap(...) { entry: ret void } ; [#uses=1] define weak i8 @_ssdm_op_Read.ap_auto.i8(i8) { entry: ret i8 %0 } ; [#uses=1] define weak i64 @_ssdm_op_Read.ap_auto.i64(i64) { entry: ret i64 %0 } ; [#uses=1] define weak i32 @_ssdm_op_Read.ap_auto.i32(i32) { entry: ret i32 %0 } ; [#uses=1] define weak i16 @_ssdm_op_Read.ap_auto.i16(i16) { entry: ret i16 %0 } !opencl.kernels = !{!0} !hls.encrypted.func = !{} !llvm.map.gv = !{} !0 = metadata !{void (i8, i16, i32, i64, i32*, i32*, i32*, i64*)* @apint_arith, 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 !{metadata !8} !8 = metadata !{i32 0, i32 7, metadata !9} !9 = metadata !{metadata !10} !10 = metadata !{metadata !"inA", metadata !11, metadata !"char", i32 0, i32 7} !11 = metadata !{metadata !12} !12 = metadata !{i32 0, i32 0, i32 0} !13 = metadata !{metadata !14} !14 = metadata !{i32 0, i32 15, metadata !15} !15 = metadata !{metadata !16} !16 = metadata !{metadata !"inB", metadata !11, metadata !"short", i32 0, i32 15} !17 = metadata !{metadata !18} !18 = metadata !{i32 0, i32 31, metadata !19} !19 = metadata !{metadata !20} !20 = metadata !{metadata !"inC", metadata !11, metadata !"int", i32 0, i32 31} !21 = metadata !{metadata !22} !22 = metadata !{i32 0, i32 63, metadata !23} !23 = metadata !{metadata !24} !24 = metadata !{metadata !"inD", metadata !11, metadata !"long long int", i32 0, i32 63} !25 = metadata !{metadata !26} !26 = metadata !{i32 0, i32 31, metadata !27} !27 = metadata !{metadata !28} !28 = metadata !{metadata !"out1", metadata !29, metadata !"int", i32 0, i32 31} !29 = metadata !{metadata !30} !30 = metadata !{i32 0, i32 0, i32 1} !31 = metadata !{metadata !32} !32 = metadata !{i32 0, i32 31, metadata !33} !33 = metadata !{metadata !34} !34 = metadata !{metadata !"out2", metadata !29, metadata !"unsigned int", i32 0, i32 31} !35 = metadata !{metadata !36} !36 = metadata !{i32 0, i32 31, metadata !37} !37 = metadata !{metadata !38} !38 = metadata !{metadata !"out3", metadata !29, metadata !"int", i32 0, i32 31} !39 = metadata !{metadata !40} !40 = metadata !{i32 0, i32 63, metadata !41} !41 = metadata !{metadata !42} !42 = metadata !{metadata !"out4", metadata !29, metadata !"long int", i32 0, i32 63} !43 = metadata !{i32 786689, metadata !44, metadata !"inD", metadata !45, i32 67108868, metadata !54, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !44 = metadata !{i32 786478, i32 0, metadata !45, metadata !"apint_arith", metadata !"apint_arith", metadata !"_Z11apint_arithcsixPiPjS_Pl", metadata !45, i32 4, metadata !46, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void (i8, i16, i32, i64, i32*, i32*, i32*, i64*)* @apint_arith, null, null, metadata !68, i32 4} ; [ DW_TAG_subprogram ] !45 = metadata !{i32 786473, metadata !"vivado_test/prec_test.cpp", metadata !"/home/hakta/Documents", null} ; [ DW_TAG_file_type ] !46 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !47, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] !47 = metadata !{null, metadata !48, metadata !50, metadata !52, metadata !54, metadata !56, metadata !58, metadata !61, metadata !64} !48 = metadata !{i32 786454, null, metadata !"dinA_t", metadata !45, i32 3, i64 0, i64 0, i64 0, i32 0, metadata !49} ; [ DW_TAG_typedef ] !49 = metadata !{i32 786468, null, metadata !"char", null, i32 0, i64 8, i64 8, i64 0, i32 0, i32 6} ; [ DW_TAG_base_type ] !50 = metadata !{i32 786454, null, metadata !"dinB_t", metadata !45, i32 4, i64 0, i64 0, i64 0, i32 0, metadata !51} ; [ DW_TAG_typedef ] !51 = metadata !{i32 786468, null, metadata !"short", null, i32 0, i64 16, i64 16, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !52 = metadata !{i32 786454, null, metadata !"dinC_t", metadata !45, i32 5, i64 0, i64 0, i64 0, i32 0, metadata !53} ; [ DW_TAG_typedef ] !53 = metadata !{i32 786468, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !54 = metadata !{i32 786454, null, metadata !"dinD_t", metadata !45, i32 6, i64 0, i64 0, i64 0, i32 0, metadata !55} ; [ DW_TAG_typedef ] !55 = metadata !{i32 786468, null, metadata !"long long int", null, i32 0, i64 64, i64 64, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !56 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !57} ; [ DW_TAG_pointer_type ] !57 = metadata !{i32 786454, null, metadata !"dout1_t", metadata !45, i32 7, i64 0, i64 0, i64 0, i32 0, metadata !53} ; [ DW_TAG_typedef ] !58 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !59} ; [ DW_TAG_pointer_type ] !59 = metadata !{i32 786454, null, metadata !"dout2_t", metadata !45, i32 8, i64 0, i64 0, i64 0, i32 0, metadata !60} ; [ DW_TAG_typedef ] !60 = metadata !{i32 786468, null, metadata !"unsigned int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 7} ; [ DW_TAG_base_type ] !61 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !62} ; [ DW_TAG_pointer_type ] !62 = metadata !{i32 786454, null, metadata !"dout3_t", metadata !45, i32 9, i64 0, i64 0, i64 0, i32 0, metadata !63} ; [ DW_TAG_typedef ] !63 = metadata !{i32 786454, null, metadata !"int32_t", metadata !45, i32 38, i64 0, i64 0, i64 0, i32 0, metadata !53} ; [ DW_TAG_typedef ] !64 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !65} ; [ DW_TAG_pointer_type ] !65 = metadata !{i32 786454, null, metadata !"dout4_t", metadata !45, i32 10, i64 0, i64 0, i64 0, i32 0, metadata !66} ; [ DW_TAG_typedef ] !66 = metadata !{i32 786454, null, metadata !"int64_t", metadata !45, i32 40, i64 0, i64 0, i64 0, i32 0, metadata !67} ; [ DW_TAG_typedef ] !67 = metadata !{i32 786468, null, metadata !"long int", null, i32 0, i64 64, i64 64, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] !68 = metadata !{metadata !69} !69 = metadata !{i32 786468} ; [ DW_TAG_base_type ] !70 = metadata !{i32 4, i32 61, metadata !44, null} !71 = metadata !{i32 786689, metadata !44, metadata !"inC", metadata !45, i32 50331652, metadata !52, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !72 = metadata !{i32 4, i32 49, metadata !44, null} !73 = metadata !{i32 786689, metadata !44, metadata !"inB", metadata !45, i32 33554436, metadata !50, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !74 = metadata !{i32 4, i32 37, metadata !44, null} !75 = metadata !{i32 786689, metadata !44, metadata !"inA", metadata !45, i32 16777220, metadata !48, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !76 = metadata !{i32 4, i32 25, metadata !44, null} !77 = metadata !{i32 786689, metadata !44, metadata !"out1", metadata !45, i32 83886084, metadata !56, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !78 = metadata !{i32 4, i32 75, metadata !44, null} !79 = metadata !{i32 786689, metadata !44, metadata !"out2", metadata !45, i32 100663300, metadata !58, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !80 = metadata !{i32 4, i32 90, metadata !44, null} !81 = metadata !{i32 786689, metadata !44, metadata !"out3", metadata !45, i32 117440516, metadata !61, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !82 = metadata !{i32 4, i32 105, metadata !44, null} !83 = metadata !{i32 786689, metadata !44, metadata !"out4", metadata !45, i32 134217732, metadata !64, i32 0, i32 0} ; [ DW_TAG_arg_variable ] !84 = metadata !{i32 4, i32 120, metadata !44, null} !85 = metadata !{i32 6, i32 2, metadata !86, null} !86 = metadata !{i32 786443, metadata !44, i32 4, i32 126, metadata !45, i32 0} ; [ DW_TAG_lexical_block ] !87 = metadata !{i32 7, i32 2, metadata !86, null} !88 = metadata !{i32 8, i32 2, metadata !86, null} !89 = metadata !{i32 9, i32 2, metadata !86, null} !90 = metadata !{i32 10, i32 1, metadata !86, null}