Mettle

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