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

--- Comment #3 from kargl at gcc dot gnu.org ---
(In reply to Richard Biener from comment #2)
> Hm, it works for me on linux with glibc, can you be more specific as to what
> OS/libc (version) you are using?
> 
> foof:
> .LFB0:
>         .cfi_startproc
>         mulss   .LC0(%rip), %xmm0
>         jmp     expf
> 
> food:
> .LFB1:
>         .cfi_startproc
>         mulsd   .LC1(%rip), %xmm0
>         jmp     exp

Richard, I'm using x86_64-*-freebsd.  I just checked with powl(), and got 
fool:
.LFB5:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        subq    $16, %rsp
        flds    .LC0(%rip)
        pushq   24(%rbp)
        pushq   16(%rbp)
        fstpt   -16(%rbp)
        movq    -16(%rbp), %rax
        movl    -8(%rbp), %edx
        pushq   %rdx
        pushq   %rax
        call    powl
        addq    $32, %rsp
        leave
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc

with -ffast-math.

This might be related to PR89125.  The patch I attached to that PR has never
found its way into the repository.  I'll do some more testing later today.

Reply via email to