https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64322
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Target Milestone|--- |5.0
Status|NEW |RESOLVED
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #10)
> (In reply to Martin Liška from comment #9)
> > Can the bug be marked as resolved?
>
> Did you check? At -Os we now produce for A
>
> movq $0, -16(%rsp)
> movl $1, %eax
> salq $32, %rax
> movq %rax, -8(%rsp)
> movq -16(%rsp), %rax
> xorl %eax, %eax
> ret
movabs $0x100000000,%rax
is 10 bytes while
mov $0x1,%eax
shl $0x20,%rax
is also 9 bytes.
Counting instructions on x86_64 with -Os is not always the best thing to do :).
Yes it is fixed and even improved.