inline-asmThe loop body contains inline assembly
Reported by --explain after a verdict.
mettle explain inline-asm
The compiler treats an asm block as opaque. It cannot know which registers or memory the block touches, so it cannot prove the lanes are independent.
Fix: move the asm out of the loop, or accept the scalar loop. Hand-written asm in a hot loop is usually already the vector code you wanted.
Related
- call-in-bodyThe loop body calls a function
- extern-call-in-bodyThe loop body calls an external function
- indirect-callThe loop body calls through a function pointer
- alloc-in-bodyThe loop body allocates
- control-flowThe loop body branches
- early-exitThe loop can leave before its trip count
- int16-elements16-bit integer elements have no kernel
- int64-elements64-bit integer elements have no kernel