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.