-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quadmath doesn't work on PPC #46
Comments
I agree it makes sense to switch to use LLVM support where available, since the hacks we have in place now are pretty cumbersome. Does LLVM provide intrinsics for conversion, arithmetic etc? |
Also is f128 on PPC match ieee754 binary128 or is it double-double? |
|
So talking with @leios they way I would fix this is to define:
Leave the target lowering up to LLVM to figure out. We might need to load the quadmath support with |
I think the lowest hanging fruit is to make sure the package can load when libquadmath isn't present: we should be able to do that by removing the Line 271 in 4f22e7f
|
this should allow it to load (but not run) on machines where libquadmath is not present. partially fixes #46.
this should allow it to load (but not run) on machines where libquadmath is not present. partially fixes #46.
@vchuravy I agree that in the long run we should generate fp128 IR where feasible. I tried that approach when I was working on the Windows ABI here without success. My recollection is that LLVM did not compile fp128 intrinsics correctly for Windows and some edge cases were suspect for Linux. I did not find much of a test suite for fp128 in LLVM or Clang, so I figured it was still WIP. It looks like Clang 9 compiles for |
Looking at my system GCC does provide a libquadmath.so |
Current status is that the package should now load, but not work. |
On a Power9 machine:
I found https://gcc.gnu.org/wiki/Ieee128PowerPC
In general it might be more reliable to use LLVM
f128
support instead of doing target specific lowering in a package?The text was updated successfully, but these errors were encountered: