48 template <
typename dataType>
58 uint32_t blockSize = pKerPrivArgs->
blockSize;
59 typedef typename c7x::make_full_vector<dataType>::type vec;
60 __SE_TEMPLATE_v1 se0Params;
61 __SA_TEMPLATE_v1 sa0Params;
63 __SE_ELETYPE SE_ELETYPE = c7x::se_eletype<vec>::value;
64 __SE_VECLEN SE_VECLEN = c7x::se_veclen<vec>::value;
65 __SA_VECLEN SA_VECLEN = c7x::sa_veclen<vec>::value;
67 uint8_t *pBlock = pKerPrivArgs->
bufPblock;
72 se0Params = __gen_SE_TEMPLATE_v1();
73 se0Params.ICNT0 = blockSize;
74 se0Params.ELETYPE = SE_ELETYPE;
75 se0Params.VECLEN = SE_VECLEN;
76 se0Params.DIMFMT = __SE_DIMFMT_1D;
81 sa0Params = __gen_SA_TEMPLATE_v1();
82 sa0Params.ICNT0 = blockSize;
83 sa0Params.VECLEN = SA_VECLEN;
84 sa0Params.DIMFMT = __SA_DIMFMT_1D;
144 template <
typename dataType>
150 uint32_t blockSize = pKerPrivArgs->
blockSize;
152 dataType *restrict pInLocal = (dataType *) pIn;
153 dataType *restrict pOutLocal = (dataType *) pOut;
154 typedef typename c7x::make_full_vector<dataType>::type vec;
155 int32_t eleCount = c7x::element_count_of<vec>::value;
157 DSPLIB_DEBUGPRINTFN(0,
"pInLocal: %p pOutLocal: %p blockSize: %d eleCount: %d\n", pInLocal, pOutLocal, blockSize,
160 uint8_t *pBlock = pKerPrivArgs->
bufPblock;
161 __SE_TEMPLATE_v1 se0Params = *(__SE_TEMPLATE_v1 *) ((uint8_t *) pBlock +
SE_SE0_PARAM_OFFSET);
162 __SA_TEMPLATE_v1 sa0Params = *(__SA_TEMPLATE_v1 *) ((uint8_t *) pBlock +
SE_SA0_PARAM_OFFSET);
165 __SE0_OPEN(pInLocal, se0Params);
167 __SA0_OPEN(sa0Params);
169 for (uint32_t counter = 0; counter < blockSize; counter += eleCount) {
170 vec out = c7x::strm_eng<0, vec>::get_adv();
171 __vpred vpred = c7x::strm_agen<0, vec>::get_vpred();
172 vec *addr = c7x::strm_agen<0, vec>::get_adv(pOutLocal);
173 __vstore_pred(vpred, addr, out);
#define SE_SE0_PARAM_OFFSET
#define SE_SA0_PARAM_OFFSET
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< double >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< uint8_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< uint64_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< uint8_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
DSPLIB_STATUS DSPLIB_blk_move_exec_ci(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
This function is the main execution function for the C7x implementation of the kernel....
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< float >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< int16_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< double >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< uint32_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< uint16_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
DSPLIB_STATUS DSPLIB_blk_move_init_ci(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
This function is the initialization function for the C7x implementation of the kernel....
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< uint32_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< float >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< int8_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< int16_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< int8_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< int64_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< uint16_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< int32_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< int64_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_exec_ci< int32_t >(DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
template DSPLIB_STATUS DSPLIB_blk_move_init_ci< uint64_t >(DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_blk_move_InitArgs *pKerInitArgs)
Header file for kernel's internal use. For the kernel's interface, please see DSPLIB_blk_move.
#define DSPLIB_DEBUGPRINTFN(N, fmt,...)
DSPLIB_STATUS_NAME
The enumeration of all status codes.
void * DSPLIB_kernelHandle
Handle type for DSPLIB operations.
Structure containing the parameters to initialize the kernel.
Structure that is reserved for internal use by the kernel.
uint8_t bufPblock[DSPLIB_BLK_MOVE_IXX_IXX_OXX_PBLOCK_SIZE]
Buffer to save SE & SA configuration parameters
int32_t blockSize
Size of input buffer for different batches DSPLIB_blk_move_init that will be retrieved and used by DS...
A structure for a 1 dimensional buffer descriptor.