SPRUIG8J January 2018 – March 2024
A small set of C7000 instructions,
specifically some VFIR and VMATMPY instructions, accept only 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 (e.g. SE1:SE0). These
instructions have a special intrinsic interface, which is defined using an
enumeration called SE_REG
or SE_REG_PAIR
that must
be used with the intrinsic. Because of this 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
};