The runtime library has two family library implementation for ppc_fp128 and fp128. For IBM Long double(ppc_fp128), it is suffixed with 'l', i.e(sqrtl). For IEEE Long double(fp128), it is suffixed with "ieee128" or "f128". We miss to map several libcall for IEEE Long double.
Details
- Reviewers
nemanjai lei qiucf - Group Reviewers
Restricted Project - Commits
- rG08e287aaf39f: [PowerPC][FP128] Fix the incorrect signature for math library call
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/CodeGen/TargetLoweringBase.cpp | ||
---|---|---|
150 | I see in llvm/include/llvm/IR/RuntimeLibcalls.def: HANDLE_LIBCALL(FPTOSINT_F128_I128, "__fixtfti") HANDLE_LIBCALL(FPTOSINT_PPCF128_I128, "__fixtfti") So only PPC uses KF instead of TF for IEEE f128? And it seems compiler-rt doesn't have impl for __fixkfti now. | |
llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
1308 | Do we need to unify those names - *f128 or __*ieee128? | |
1314 | Should be __llroundieee128 | |
1317 | Also, __llrintieee128. |
llvm/lib/CodeGen/TargetLoweringBase.cpp | ||
---|---|---|
150 | Yes. See the comments in this code.
Though the compiler-rt didn't have the implementation now, we still need to fix it. | |
llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
1308 | Good suggestion. Though the ieee128 version works, we should use f128 to align with old name convention. | |
1314 | oops, typo. |
I see in llvm/include/llvm/IR/RuntimeLibcalls.def:
So only PPC uses KF instead of TF for IEEE f128?
And it seems compiler-rt doesn't have impl for __fixkfti now.