https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82524
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-*-*, i?86-*-* Priority|P3 |P2 Status|UNCONFIRMED |NEW Known to work| |6.4.1 Last reconfirmed| |2017-10-12 Component|middle-end |rtl-optimization CC| |segher at gcc dot gnu.org Ever confirmed|0 |1 Summary|expensive-optimizations |[7/8 Regression] |produces wrong results |expensive-optimizations | |produces wrong results Target Milestone|--- |7.3 Known to fail| |7.2.1, 8.0 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It's not bswap. Looks like a RTL optimization issue to me. --param max-combine-insns=2 fixes it for me. > g++-7 t.C -O2 --param max-combine-insns=2 > ./a.out A=00FFFFFF B=FFFFFFFF alphaBlend(A,B)=00FFFFFF > g++-7 t.C -O2 --param max-combine-insns=3 > ./a.out A=00FFFFFF B=FFFFFFFF alphaBlend(A,B)=0000FFFF