Software Pipelining Limitations
Only innermost loop may be pipelined
Any of the following inside a loop prevents software pipelining [Prog. Guide, Section 4.3.3]
- Function calls (intrinsics are okay)
- Conditional break (early exit)
- Alteration of loop index (conditional or unconditional)
- Requires more than 32 registers
- Requires more than 5 conditional registers
C intrinsics allow explicit access to special architectural features such as packed data types