https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103622

--- Comment #10 from Kewen Lin <linkw at gcc dot gnu.org> ---
> test.c: In function ‘get_float128_exponent’:
> test.c:4:5: note: overloaded builtin ‘__builtin_vec_scalar_extract_exp’ is
> implemented by builtin ‘__builtin_vsx_scalar_extract_expq’
>    4 |     return __builtin_vec_scalar_extract_exp (a);
>      |     ^~~~~~
> test.c:4:12: error: ‘__builtin_vsx_scalar_extract_expq’ requires ISA 3.0 IEEE 
> > 128-bit floating point
>     4 |     return __builtin_vec_scalar_extract_exp (a);
>       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Just a record to avoid confusion, the above message was the previously emitted
message before r12-5752 for powerpc-e300c3 cross since it doesn't support ieee
float128. The message is also the same as what I saw on P8 BE with
-mabi=ieeelongdouble, but we will get the message what Bill put if specifying
with -mabi=ibmlongdouble there (that is "invalid parameter combination").

I just noticed that our built-in documents actually note the type should be
"__ieee128", it makes more sense to emit "invalid parameter combination"
instead, so Bill's proposed fix is the best.

Reply via email to