[Bug middle-end/88560] [9 Regression] armv8_2-fp16-move-1.c and related regressions after r266385

vmakarov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 21 16:53:00 GMT 2019


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

--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Wilco from comment #6)
> (In reply to Vladimir Makarov from comment #5)
> > We have too many tests checking expected generated code.  We should more
> > focus on overall effect of the change.  SPEC would be a good criterium
> > although it is hard to check SPEC for each patch.
> > 
> > I've checked the generated code of arm8_2-fp16-move-1.c and found that in
> > most cases GCC generates better code with the patch:
> > 
> > @@ -80,7 +80,6 @@ test_load_store_1:
> >         @ frame_needed = 0, uses_anonymous_args = 0
> >         @ link register save eliminated.
> >         lsl     r1, r1, #1
> > -       vmov.f16        s0, r3  @ __fp16
> >         ldrh    r3, [r2, r1]    @ __fp16
> >         strh    r3, [r0, r1]    @ __fp16
> >         bx      lr
> 
> When I tested it, this test added that vmov, not removed it - see comment #2.

I've just checked the generated code again by using

./xgcc -B.
/home/vmakarov/build1/trunk/gcc/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdiagnostics-color=never -O2 -mfpu=fp-armv8 -march=armv8.2-a+fp16
-mfloat-abi=hard -ffat-lto-objects -fno-ident -o b1.s -S

The code is 

test_load_store_1:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        lsl     r1, r1, #1
        ldrh    r3, [r2, r1]    @ __fp16
        strh    r3, [r0, r1]    @ __fp16
        bx      lr

GCC revision is r267848 as of Jan 11,2019.


More information about the Gcc-bugs mailing list