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

Reply via email to