[PATCH] rs6000: Fix ICE expanding lxvp and stxvp gimple built-ins [PR101849]

David Edelsohn dje.gcc@gmail.com
Thu Aug 12 18:20:00 GMT 2021

On Tue, Aug 10, 2021 at 7:37 PM Peter Bergner <bergner@linux.ibm.com> wrote:
> PR101849 shows we ICE on a test case when we pass a non __vector_pair *
> pointer to the __builtin_vsx_lxvp and __builtin_vsx_stxvp built-ins
> that is cast to __vector_pair *.  The problem is that when we expand
> the built-in, the cast has already been removed from gimple and we are
> only given the base pointer.  The solution used here (which fixes the ICE)
> is to catch this case and convert the pointer to a __vector_pair * pointer
> when expanding the built-in.
> This passed bootstrap and regression testing on powerpc64le-linux with
> no regressions.  Ok for mainline?  This also affects GCC 11 and 10, so
> ok there too after it has baked on trunk for a few days?
> Peter
> gcc/
>         PR target/101849
>         * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast
>         pointer to __vector_pair *.
> gcc/testsuite/
>         PR target/101849
>         * gcc.target/powerpc/pr101849.c: New test.


Thanks, David

More information about the Gcc-patches mailing list