mixed-float-widthsThe loop mixes float32 and float64
Reported by --explain after a verdict.
mettle explain mixed-float-widths
One vector register holds eight float32 or four float64. A loop that touches both would need two lane counts at once, and the conversion between them costs more than the kernel saves.
Fix: pick one width for the whole loop. Convert on the way in or on the way out, outside the loop.
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