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

Peter Bergner <bergner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-04-09
             Status|UNCONFIRMED                 |NEW

--- Comment #8 from Peter Bergner <bergner at gcc dot gnu.org> ---
(In reply to Peter Bergner from comment #7)
> diff --git a/gcc/config/rs6000/rs6000-builtins.def
> b/gcc/config/rs6000/rs6000-builtins.def
> index 555d7d58950..56b3a544b7d 100644
> --- a/gcc/config/rs6000/rs6000-builtins.def
> +++ b/gcc/config/rs6000/rs6000-builtins.def
> @@ -2650,7 +2650,7 @@
>      STXVL stxvl {}
>  
>    const signed int __builtin_scalar_byte_in_set (signed int, signed long
> long);
> -    CMPEQB cmpeqb {}
> +    CMPEQB cmpeqb {no32bit}
>  
>    pure vsc __builtin_vsx_lxvl (const void *, signed long);
>      LXVL lxvl {}

Doing a cross build to powerpc-elf, I see the ICE without the patch and no ICE
with this patch.  That said, the byte-in-set-2.c test case still fails, but
that is because with the patch, the error message is different than before.  If
we compile with -m32 -mno-powerpc64, we get the error message the test case
expects:

error: ‘__builtin_scalar_byte_in_set’ requires the ‘-mcpu=power9’ option and
either the ‘-m64’ or ‘-mpowerpc64’ option

but for -m32 -mpowerpc64, we see:

error: ‘__builtin_scalar_byte_in_set’ is not supported in 32-bit mode

Both messages seem valid, so I think we can probably modify the test case to
look for both error messages.

Reply via email to