-
Notifications
You must be signed in to change notification settings - Fork 8
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
CLANG specific issues. #94
Comments
Clang can also be more picky about pointer types in ASM "m" and "Z" constraints. GCC does not care as long as it can see the EA calculation. For example: "=Z" (*((char *)rb+rt)) Is OK for GCC, but will generate a char storage copy for Clang. Clang seems to need pointer type like: "=Z" ((double)((char *)rb+rt)) |
Clang 14 (next major release, estimated to be available early next year) will support:
|
Thanks!
…On Mon, Oct 11, 2021 at 1:05 AM Qiu Chaofan ***@***.***> wrote:
Clang 14 (next major release, estimated to be available early next year)
will support:
- __ibm128 type for traditional double-double format on Power
- mode(IF)/mode(IC) for forced double-double format
- -mfloat128 will be enabled by default for VSX targets (Power7 and
later)
- long double may switch to __float128 as default semantics, and there
seems to be similar changes in GCC
- In clang 9 and later, -mabi=ieeelongdouble/ibmlongdouble is
available to switch long double semantics, so we cannot expect long double
is __ibm128
- Use __LONG_DOUBLE_IEEE128__ and __LONG_DOUBLE_IBM128__ to tell
current long double semantics (available since clang 12)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#94 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIEI2IJPIPEC6ZAV2K3MAWLUGJ5CFANCNFSM4M6HH7FA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
So it looks like Clang 12 with -mfloat128 will define __FLOAT128__ but will
not let you define or use __float128 or __ieee128.
Does _Float128 work as a type in C?
It would be helpful if there was a type I could use for unions and Q const
values. As is I have to use vector unsigned __int128 to typedef __binary128
as a work around and all constants are in hex.
…On Mon, Oct 11, 2021 at 1:05 AM Qiu Chaofan ***@***.***> wrote:
Clang 14 (next major release, estimated to be available early next year)
will support:
- __ibm128 type for traditional double-double format on Power
- mode(IF)/mode(IC) for forced double-double format
- -mfloat128 will be enabled by default for VSX targets (Power7 and
later)
- long double may switch to __float128 as default semantics, and there
seems to be similar changes in GCC
- In clang 9 and later, -mabi=ieeelongdouble/ibmlongdouble is
available to switch long double semantics, so we cannot expect long double
is __ibm128
- Use __LONG_DOUBLE_IEEE128__ and __LONG_DOUBLE_IBM128__ to tell
current long double semantics (available since clang 12)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#94 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIEI2IJPIPEC6ZAV2K3MAWLUGJ5CFANCNFSM4M6HH7FA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Clang doesn't have
Currently not. There is patching adding this (https://reviews.llvm.org/D111382) while some reviewers are against it (making difference between C and C++). |
The text was updated successfully, but these errors were encountered: