; ModuleID = '/home/hakta/Documents/vivado_test/solution1/.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" @apint_arith_str = internal unnamed_addr constant [12 x i8] c"apint_arith\00" declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone 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 %inC_read = call i32 @_ssdm_op_Read.ap_auto.i32(i32 %inC) nounwind %inB_read = call i16 @_ssdm_op_Read.ap_auto.i16(i16 %inB) nounwind %inA_read = call i8 @_ssdm_op_Read.ap_auto.i8(i8 %inA) nounwind %tmp = sext i8 %inA_read to i32 %tmp_cast2 = sext i8 %inA_read to i17 %tmp_cast = sext i8 %inA_read to i24 %tmp_1_cast1 = sext i16 %inB_read to i17 %tmp_1_cast = sext i16 %inB_read to i24 %tmp_2 = mul i24 %tmp_1_cast, %tmp_cast %tmp_2_cast = sext i24 %tmp_2 to i32 call void @_ssdm_op_Write.ap_auto.i32P(i32* %out1, i32 %tmp_2_cast) nounwind %tmp_3 = add i17 %tmp_1_cast1, %tmp_cast2 %tmp_3_cast = sext i17 %tmp_3 to i32 call void @_ssdm_op_Write.ap_auto.i32P(i32* %out2, i32 %tmp_3_cast) nounwind %tmp_4 = sdiv i32 %inC_read, %tmp call void @_ssdm_op_Write.ap_auto.i32P(i32* %out3, i32 %tmp_4) nounwind %tmp_5 = sext i8 %inA_read to i64 %tmp_6 = srem i64 %inD_read, %tmp_5 call void @_ssdm_op_Write.ap_auto.i64P(i64* %out4, i64 %tmp_6) nounwind ret void } define weak void @_ssdm_op_Write.ap_auto.i64P(i64*, i64) { entry: store i64 %1, i64* %0 ret void } define weak void @_ssdm_op_Write.ap_auto.i32P(i32*, i32) { entry: store i32 %1, i32* %0 ret void } define weak void @_ssdm_op_SpecTopModule(...) { entry: ret void } define weak void @_ssdm_op_SpecBitsMap(...) { entry: ret void } define weak i8 @_ssdm_op_Read.ap_auto.i8(i8) { entry: ret i8 %0 } define weak i64 @_ssdm_op_Read.ap_auto.i64(i64) { entry: ret i64 %0 } define weak i32 @_ssdm_op_Read.ap_auto.i32(i32) { entry: ret i32 %0 } 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}