Hi Nathan,
Thanks for your post.
There are restrictions, exceptions and resource conflicts on the usage of SPLOOP buffer operations. Usually, instructions disabling interrupts should not used during loop buffer operation - there are internal or external exceptions when the loop buffer is active - interrupts will be automatically disabled before a SPLOOP instruction is encountered - there are conditions while interrrupting the loop buffer - there are exceptions when returning from an interrupt to an SPLOOP instruction - there are restrictions on instructions placed in the loop buffer
To know more on the above details, please refer chapter 7 for SPLOOP buffer hardware and software mechanisms in which kindly check sections 7.4, 7.7, 7.9, 7.10, 7.13, 7.14, 7.15, 7.18 in the below instruction set reference guide:
http://www.ti.com/lit/ug/sprufe8b/sprufe8b.pdf
Also, please refer sections 3.2 & 3.4 below in c6000 optimizing compiler user guide to understand how the compiler attempts to software pipeline your loops at different optimization level
http://www.ti.com/lit/ug/spru187u/spru187u.pdf
Thanks & regards,
Sivaraj K
-------------------------------------------------------------------------------------------------------