Generate XXSPLTIDP for scalars on power10.
authorMichael Meissner <meissner@linux.ibm.com>
Wed, 15 Dec 2021 07:30:20 +0000 (02:30 -0500)
committerMichael Meissner <meissner@linux.ibm.com>
Wed, 15 Dec 2021 07:30:20 +0000 (02:30 -0500)
commit575ad7700f3d29d9310a778818c0c7a360f4eb1a
treebddfbadc4e93128f20b6f0370f6acd1c63fa561c
parent8d443ac032ecf0d8275bb0f6838ed7c9aee4e7a5
Generate XXSPLTIDP for scalars on power10.

This patch implements XXSPLTIDP support for SF, and DF scalar constants.
The previous patch added support for vector constants.  This patch adds
the support for SFmode and DFmode scalar constants.

I added 2 new tests to test loading up SF and DF scalar constants.

2021-12-15  Michael Meissner  <meissner@the-meissners.org>

gcc/

* config/rs6000/rs6000.md (UNSPEC_XXSPLTIDP_CONST): New unspec.
(UNSPEC_XXSPLTIW_CONST): New unspec.
(movsf_hardfloat): Add support for generating XXSPLTIDP.
(mov<mode>_hardfloat32): Likewise.
(mov<mode>_hardfloat64): Likewise.
(xxspltidp_<mode>_internal): New insns.
(xxspltiw_<mode>_internal): New insns.
(splitters for SF/DFmode): Add new splitters for XXSPLTIDP.

gcc/testsuite/

* gcc.target/powerpc/vec-splat-constant-df.c: New test.
* gcc.target/powerpc/vec-splat-constant-sf.c: New test.
gcc/config/rs6000/rs6000.md
gcc/testsuite/gcc.target/powerpc/vec-splat-constant-df.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-splat-constant-sf.c [new file with mode: 0644]