[llvm-dev] Why is llvm.maxnum.f32 coming through unreduced?

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 16 09:54:23 PST 2015


On 16 November 2015 at 09:45, Rodney M. Bates <rodney_bates at lcwb.coop> wrote:
> With a link name like "llvm.maxnum.f32", I would expect it to be provided
> by the llvm distribution.

Ah, it ought to have been converted into an "fmaxf" call. It's
possible that's a bug in LLVM 3.6 and the intrinsic wasn't supported
on x86 then, since it works for me on trunk:

$ cat simple.ll
define float @foo(float %l, float %r) {
  %res = call float @llvm.maxnum.f32(float %l, float %r)
  ret float %res
}
declare float @llvm.maxnum.f32(float, float)
$ bin/llc -mtriple=x86_64-apple-darwin simple.ll -o -
[...]
foo:                                    # @foo
    .cfi_startproc
# BB#0:
    jmp fmaxf                   # TAILCALL
    .cfi_endproc

Alternatively (if that works for you too), it might be some kind of
misconfiguration in your front-end, though that seems a bit unlikely.

Tim.


More information about the llvm-dev mailing list