unrecognized-shapeNo recognizer claimed this loop
Reported by --explain after a verdict.
mettle explain unrecognized-shape
The honest fallback. The compiler ruled out every disqualifier it can detect and still found no kernel for the loop, so it says that rather than guessing at a cause.
What does vectorize, as a checklist: unit-stride accesses,
a[i]and nota[i * k]int8, int32, float32 or float64 elements
a straight-line body: no calls, no branches, no allocation
one of the known shapes: a map (
a[i] = expr), a+reduction (s = s + expr), a dot product, or a fill
A loop that meets all of that and still lands here is worth reporting.
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
- inline-asmThe loop body contains inline assembly
- control-flowThe loop body branches
- early-exitThe loop can leave before its trip count
- int16-elements16-bit integer elements have no kernel