Der "Zero-Overhead-Loop" beim xtensa funktioniert nicht "automatisch".
Vereinfacht: Im (Assembler-)Code wird dem Prozessor (per LOOP-Anweisung)
gesagt: "Wiederhole die Ausführung der folgenden X Anweisungen N-mal",
und die CPU macht dann den Rest. Das erspart den normalen Loop-Overhead
um z.B. einen Zähler in einem Register zu initialisieren, im Loop zu
dekrementieren, und vor allem den "teuren" Branch am Ende der Schleife.
Performance-mäßig müsste das dann sehr nah an das komplette Unrolling
einer Schleife herankommen, mit dem Potenzial, sogar noch schneller zu
sein, weil keine Branches aus der Schleife heraus benötigt werden und
nur der Code für eine Schleifen-Iteration geladen und im Cache
gehalten werden muss.