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

Qing Zhao <qing.zhao at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qing.zhao at oracle dot com

--- Comment #1 from Qing Zhao <qing.zhao at oracle dot com> ---
one question to the submitter:
   what optimization level you used to show this issue?

I tried-O0, -O1, -O2, and -O3.  I did not see this issue with -O0 and -O1.
starting to see the issue from -O2 and above. (I am using the upstream GCC on
9/27/2017).

the assembly sequence I observed with -O1 (GOOD one) is:
test1:
        add     w0, w0, 1
        uxtw    x2, w0
        adrp    x1, d
        str     x2, [x1, #:lo12:d]
        ret

the assembly sequence I observed with -O2 (BAD one) is:
test1:
        adrp    x2, d
        add     w1, w0, 1
        mov     w0, w1
        str     x1, [x2, #:lo12:d]
        ret

which shows the issue that mentioned by Andrew Pinski (i.e the "mov" insn might
be
unnecessary if the "add" insn is "add w0, w0, 1".

Reply via email to