The llvm.frexp.* family of intrinsics and their corresponding libcalls were
recently added, which means we need to know their signatures.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/test/CodeGen/WebAssembly/libcalls.ll | ||
---|---|---|
261 | How is llvm.frexp.f64.i32 implemented? Is it supposed to be the name of a function compiler-rt? |
llvm/test/CodeGen/WebAssembly/libcalls.ll | ||
---|---|---|
261 | it's a libm function, like the other functions in this test. IIRC some of the libcalls might be compiler-rt, I'm not sure LLVM differentiates. Also the list of intrinsics doesn't really differentiate between ones that lower directly to libcalls and ones that don't, because it depends on the architecture (e.g. if there are instructions that map directly or not). In this case wasm doesn't really have a direct equivalent for frexp. |
llvm/test/CodeGen/WebAssembly/libcalls.ll | ||
---|---|---|
261 | Sorry, the target-independent lowering code translates the intrinsic (named @llvm.frexp.f64.i32 or @llvm.frexp.f32.i32) into a call to the library function (named frexp or frexpf). Oh, but I see the problem here, the call in the generated code in this test is wrong! It looks like there was some kind of accident with update_llc_check_tests.py, I'm not sure what happened there. I fixed that (Also yes, I missed __powidf2. I assume that one is a compiler-rt function) |
How is llvm.frexp.f64.i32 implemented? Is it supposed to be the name of a function compiler-rt?