This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: DMVD instruction of c6x is not emulated correctly

Part Number: TDA4VM

Hi

■Problem

DMVD instruction of c6x is not emulated correctly.

A build error occurs.

Checked on both Host Emulation and actual c7x.

 

■Test code

0044.main.cpp

■Result

 

■Reference

 

TMS320C6000 Optimizing Compiler v 7.4 User's Guide (Rev. U) P.220

  • The root cause is an error in the C6000 compiler manual.  In the description of the _dmvd intrinsic, the type of the first argument is incorrectly shown as long long.  It should be unsigned.  The correct interface is ...

    long long _dmvd(unsigned src1, unsigned src2);

    In your simple test case the invocation of _dmvd should be changed to: int64_t llResult = _dmvd(0, 0);

    I filed EXT_EP-10242 to have the C6000 compiler manual corrected.  You are welcome to follow it with that link.

    Thanks and regards,

    -George