https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66986
--- Comment #4 from Ondrej Bilka <neleai at seznam dot cz> --- Ok added updated benchmark with adding -mtune=native and tests for core2, haswell and fx10. It stays pretty consistent. don't inline conditional add branched real 0m0.698s user 0m0.698s sys 0m0.000s builtin real 0m0.775s user 0m0.776s sys 0m0.000s branch branched real 0m0.715s user 0m0.716s sys 0m0.000s builtin real 0m0.774s user 0m0.774s sys 0m0.000s sum branched real 0m0.697s user 0m0.697s sys 0m0.000s builtin real 0m0.774s user 0m0.775s sys 0m0.000s inline outer call conditional add branched real 0m0.391s user 0m0.391s sys 0m0.000s builtin real 0m0.543s user 0m0.543s sys 0m0.000s branch branched real 0m0.391s user 0m0.392s sys 0m0.000s builtin real 0m0.404s user 0m0.404s sys 0m0.000s sum branched real 0m0.695s user 0m0.696s sys 0m0.000s builtin real 0m0.695s user 0m0.696s sys 0m0.000s inline inner call conditional add branched real 0m0.466s user 0m0.466s sys 0m0.000s builtin real 0m0.541s user 0m0.541s sys 0m0.000s branch branched real 0m0.389s user 0m0.388s sys 0m0.000s builtin real 0m0.430s user 0m0.427s sys 0m0.003s sum branched real 0m0.700s user 0m0.701s sys 0m0.000s builtin real 0m0.695s user 0m0.695s sys 0m0.000s tigth loop conditional add branched real 0m0.080s user 0m0.079s sys 0m0.000s builtin real 0m0.158s user 0m0.158s sys 0m0.000s branch branched real 0m0.080s user 0m0.080s sys 0m0.000s builtin real 0m0.160s user 0m0.160s sys 0m0.000s sum branched real 0m0.233s user 0m0.232s sys 0m0.000s builtin real 0m0.310s user 0m0.311s sys 0m0.000s fx10 don't inline conditional add branched real 0m0.803s user 0m0.804s sys 0m0.000s builtin real 0m0.861s user 0m0.862s sys 0m0.000s branch branched real 0m0.650s user 0m0.650s sys 0m0.000s builtin real 0m0.686s user 0m0.683s sys 0m0.004s sum branched real 0m1.300s user 0m1.299s sys 0m0.004s builtin real 0m1.347s user 0m1.346s sys 0m0.004s inline outer call conditional add branched real 0m0.366s user 0m0.366s sys 0m0.000s builtin real 0m0.539s user 0m0.539s sys 0m0.000s branch branched real 0m0.367s user 0m0.364s sys 0m0.004s builtin real 0m0.416s user 0m0.413s sys 0m0.004s sum branched real 0m1.301s user 0m1.303s sys 0m0.000s builtin real 0m1.307s user 0m1.308s sys 0m0.000s inline inner call conditional add branched real 0m0.587s user 0m0.587s sys 0m0.000s builtin real 0m0.590s user 0m0.586s sys 0m0.004s branch branched real 0m0.516s user 0m0.517s sys 0m0.000s builtin real 0m0.553s user 0m0.553s sys 0m0.001s sum branched real 0m1.294s user 0m1.295s sys 0m0.000s builtin real 0m1.310s user 0m1.309s sys 0m0.004s tigth loop conditional add branched real 0m0.118s user 0m0.115s sys 0m0.004s builtin real 0m0.409s user 0m0.409s sys 0m0.000s branch branched real 0m0.154s user 0m0.154s sys 0m0.000s builtin real 0m0.262s user 0m0.263s sys 0m0.000s sum branched real 0m0.369s user 0m0.369s sys 0m0.000s builtin real 0m0.408s user 0m0.409s sys 0m0.000s core2 don't inline conditional add branched real 0m1.573s user 0m1.573s sys 0m0.000s builtin real 0m1.696s user 0m1.692s sys 0m0.004s branch branched real 0m1.455s user 0m1.455s sys 0m0.000s builtin real 0m1.332s user 0m1.332s sys 0m0.000s sum branched real 0m1.332s user 0m1.328s sys 0m0.004s builtin real 0m1.574s user 0m1.574s sys 0m0.000s inline outer call conditional add branched real 0m0.850s user 0m0.849s sys 0m0.000s builtin real 0m1.211s user 0m1.210s sys 0m0.000s branch branched real 0m0.851s user 0m0.850s sys 0m0.000s builtin real 0m0.970s user 0m0.966s sys 0m0.004s sum branched real 0m1.091s user 0m1.091s sys 0m0.000s builtin real 0m1.108s user 0m1.107s sys 0m0.000s inline inner call conditional add branched real 0m1.091s user 0m1.091s sys 0m0.000s builtin real 0m1.091s user 0m1.091s sys 0m0.000s branch branched real 0m0.850s user 0m0.846s sys 0m0.003s builtin real 0m0.970s user 0m0.969s sys 0m0.000s sum branched real 0m1.096s user 0m1.095s sys 0m0.000s builtin real 0m1.101s user 0m1.100s sys 0m0.000s tigth loop conditional add branched real 0m0.126s user 0m0.126s sys 0m0.000s builtin real 0m0.369s user 0m0.368s sys 0m0.000s branch branched real 0m0.124s user 0m0.124s sys 0m0.000s builtin real 0m0.367s user 0m0.366s sys 0m0.000s sum branched real 0m0.365s user 0m0.364s sys 0m0.000s builtin real 0m0.627s user 0m0.626s sys 0m0.000s