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

--- Comment #3 from Daniel Fruzynski <bugzi...@poradnik-webmastera.com> ---
Looks that AARCH64 is also affected. This is output from gcc 8.2 for SIZE=2:

[asm]
test(double*, double*, double*):
        ldp     d1, d0, [x0]
        ldp     d3, d2, [x1]
        fcmpe   d1, d3
        fcsel   d1, d1, d3, mi
        fcmpe   d0, d2
        fcsel   d0, d0, d2, mi
        stp     d1, d0, [x2]
        ret
[/asm]

And this is for SIZE=4:

[asm]
test(double*, double*, double*):
        ldr     q5, [x0]
        ldr     q3, [x1]
        ldr     q4, [x0, 16]
        ldr     q2, [x1, 16]
        fcmgt   v1.2d, v3.2d, v5.2d
        fcmgt   v0.2d, v2.2d, v4.2d
        bsl     v1.16b, v5.16b, v3.16b
        bsl     v0.16b, v4.16b, v2.16b
        str     q1, [x2]
        str     q0, [x2, 16]
        ret
[/asm]

Reply via email to