https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70461

Vladimir Makarov <vmakarov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vmakarov at gcc dot gnu.org

--- Comment #1 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Alexander Fomin from comment #0)
> Created attachment 38134 [details]
> A reproducer
> 
> When trying to compile the attached reproducer with -m32 -O2 -march=core-avx2
> we generate 12 extra instructions (namely spills & fills) for the hot loop
> since r234527.

Thank you for finding this out.

I am confirming that the revision resulted in the code worsening.  The problem
is in using a wrong cost (65535) in saving calculations.  Such cost is for AREG
in DImode.  This cost is defined when the class (AREG) has not enough registers
to hold a value in given mode (DImode). 

I hope the patch will be ready today or tomorrow.

Reply via email to