That's absolutely right (and thank you for the reference), but this benchmark starts off with fairly naive code where -ffast-math may still help considerably.
If in-between the start and the end, I went up to 8 accumulators and in files in the same folder I have the same with SSE and AVX instructions.
I actually wanted to know exactly what ffast-math did, down to the codegen (so you have assembly at the bottom).
See my benchmarks [1] with fast-math in the middle and the generated assembly comparison at the bottom.
The base language is Nim but pure C code should generate the same assembly.
[1] https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1....