Comment by alberth
Doesn't -O2 still exclude any CPU features from the past ~15 years (like AVX).
If you know the architecture and oldest CPU model, we're better served with added a bunch more flags, no?
I wish I could compile my server code to target CPU released on/after a particular date like:
-O2 -cpu-newer-than=2019
It's not an -O2 thing. Rather it's a -march thing.
-O2 in gcc has vectorization flags set which will use avx if the target CPU supports it. It is less aggressive on vectorization than -O3.