SPRUIG8I January 2018 – December 2023
A small handful of C7000 instructions,
specifically some VFIR and VMATMPY instructions, can only accept streaming
engine operands because they are hard-wired to the SE. This includes accesses of a
single SE (e.g. SE0) as well as accesses of a pair of SE streams together (e.g.
SE1:SE0). These instructions have a special intrinsic interface that is defined
using an enumeration called SE_REG
or SE_REG_PAIR
that must be used with the intrinsic. Because of this special interface,
these instructions can only be accessed using direct-mapped, low-level
intrinsics.
/*----------------------------------------------------------------------------*/
/* Use the following for SE_REG operands. */
/*----------------------------------------------------------------------------*/
enum SE_REG
{
SE_REG_0 = 0, // READ SE0
SE_REG_0_ADV = 1, // READ SE0 AND ADVANCE
SE_REG_1 = 2, // READ SE1
SE_REG_1_ADV = 3 // READ SE1 AND ADVANCE
};
/*----------------------------------------------------------------------------*/
/* Use the following for SE_REG_PAIR operands. */
/*----------------------------------------------------------------------------*/
enum SE_REG_PAIR
{
SE_REG_PAIR_0 = 0, // READ SE0 AND SE1
SE_REG_PAIR_0_ADV = 1 // READ SE0 AND SE1 AND ADVANCE BOTH STREAMS
};