typedef int32_t MyData;
#define BLOCK 128
const unsigned int BSIZE = BLOCK;

#pragma omp target device(fpga)
#pragma omp task in([BSIZE]in1, [BSIZE]in2) out([BSIZE]out)
void acc_vadd(const MyData *const restrict in1,
              const MyData *const restrict in2,
                    MyData *const restrict out)
{  
 loop_vector_add_unroll:
  for (u_int16_t i=0 ; i<BLOCK ; i++)
    {
#     pragma HLS unroll factor=2
      
      out[i] = (in1[i] + in2[i]);
    }

  return;
}

/********************** VIVADO HLS REPORT ********************/
/* Target Board: ZedBoard                                    */
/*************************************************************/
/* DSP48E      0 used |    220 available - 0.0%  utilization */
/* BRAM_18K   14 used |    280 available - 5.0%  utilization */
/* LUT      8790 used |  53200 available -16.52% utilization */
/* FF       5603 used | 106400 available - 5.27% utilization */
/*************************************************************/
