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

--- Comment #7 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Besides fixing the ICE, the patch I proposed in c#5 changes the codegen for
armv8_2-fp16-move-2.c, which is compiled with
-marm -mcpu=unset -march=armv8.2-a+fp16

from:
test_select:
        vcvtb.f32.f16   s15, s0 @ 9     [c=8 l=4]  extendhfsf2
        vcvtb.f32.f16   s14, s1 @ 10    [c=8 l=4]  extendhfsf2
        vmov    s0, s2  @ __fp16        @ 4     [c=4 l=4]  *movhf_vfp_hf16/2
        vcmpe.f32       s15, s14        @ 68    [c=4 l=4]  *cmpsf_trap_vfp/0
        vmrs    APSR_nzcv, FPSCR        @ 69    [c=4 l=4]  *movcc_vfp
        bxpl    lr      @ 12    [c=16 l=12]  *cond_return
        vmov    s0, s1  @ __fp16        @ 6     [c=4 l=4]  *movhf_vfp_hf16/2
        bx      lr      @ 74    [c=8 l=12]  *arm_return


to:
test_select:
        vcvtb.f32.f16   s0, s0  @ 9     [c=8 l=4]  extendhfsf2
        vcvtb.f32.f16   s15, s1 @ 10    [c=8 l=4]  extendhfsf2
        vcmp.f32        s0, s15 @ 57    [c=4 l=4]  *cmpsf_vfp/0
        vmrs    APSR_nzcv, FPSCR        @ 58    [c=4 l=4]  *movcc_vfp
        ite     mi      @ 23    [c=4 l=10]  *thumb2_movhfcc_vfp/2
        vmovmi.f16      s0, s1
        vmovpl.f16      s0, s2
        bx      lr      @ 63    [c=8 l=12]  *arm_return

Reply via email to