-
Notifications
You must be signed in to change notification settings - Fork 8
CLANG specific issues. #94
Copy link
Copy link
Open
Description
munroesj52
opened on May 11, 2020
Issue body actions
- Can not tell what is up with Float128 support. FLOAT128 is not defined.
- ./pveclib/vec_f128_ppc.h:209:17: error: cannot combine with previous declaration specifier
- typedef vf128_t __float128;
- Clang claims to support __float128 but may require explicit -mfloat128 for use.
- Clang seems to require both -mcpu=power9 and -mfloat128 for clang-8
- This defines FLOAT128 and enables the __float128 type
- Otherwise you are not allowed to use or redefine (typedef) __float128
- But Clang (attempts) to use the GCC/GLIBC installed math.h, stdlib.h ... headers which will get compile errors if -mcpu=power9 -mfloat128 is enabled.
- Basically clang chokes on code in bits/floatn.h what uses attribute ((mode (KC)))
- Seems to be still using long double == _IBM128 but the type constrains do not seem to be working.
- No Decimal FP support. Had to disable BCD.
- Can't even use in-line asm because clang does no recognize the constraints for FPR pairs (FPRp) required for _Decimal128.
- No constant folding for __int128 for example:
- (__int128 ) 10ll * (__int128 ) 1000000000000000000ll, /* 10**19 */
- works on GCC for both scalar and vector initializers.
- No support for vector bool _int128. GCC supports.
- Does not support #pagma GCC target
- vec_ld () does not handle vector __int128 (as specified in the Power Vector Intrinsic Programming Reference). CLang only supports the original VMX types. GCC support vector __int128 and long long.
- Clang does not support __builtin_unpack_longdouble, should be a direct register transfer.
- Again can't use in-line asm because clang does not support the FPR pair constaints
- Code gen bug in clang8 for vec_sra vector long long.
- Clang8 for -mcpu=power9 does not support inline asm for vmsumud which is a valid instruction and mnemonic. This cripples the implementation of quadword and multi-quadword precision multiply.
- Before clang 9 clang miss assembled the DCMX of the Test Data Class instructions.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
No fields configured for issues without a type.