]> gcc.gnu.org Git - gcc.git/commit
Allow constant element vec_extract to be converted to floating point
authorMichael Meissner <meissner@linux.ibm.com>
Mon, 1 May 2023 22:31:45 +0000 (18:31 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Mon, 1 May 2023 22:31:45 +0000 (18:31 -0400)
commit6a16277a48961b2e80c012a4068c3940d4d9ec04
treec75dddca4d85a85e5e9b349e1bde34cad315f524
parent21717f26285ba4733c270e7aefda48d7c1311522
Allow constant element vec_extract to be converted to floating point

This patch allows vec_extract of the following types to be converted to
floating point by loading the value directly to the vector register, and then
doing the conversion instead of loading the value to a GPR and then doing a
direct move:

vector int
vector unsigned int
vector unsigned short
vector unsigned char

2023-05-01   Michael Meissner  <meissner@linux.ibm.com>

gcc/

* config/rs6000/rs6000.md (fp_int_extend): New code attribute.
* config/rs6000/vsx.md (vsx_extract_v4si_load_to_<uns><mode>): New
* insn.
* vsx_extract_<VSX_EXTRACT_I2:mode>_load_to_uns<SFDF:mode>: New insn.

gcc/testsuite/

* gcc.target/powerpc/vec-extract-mem-char-2.c: New file.
* gcc.target/powerpc/vec-extract-mem-int-4.c: New file.
* gcc.target/powerpc/vec-extract-mem-int_5.c: New file.
* gcc.target/powerpc/vec-extract-mem-short-4.c: New file.
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/vsx.md
gcc/testsuite/gcc.target/powerpc/vec-extract-mem-char-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-extract-mem-int-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-extract-mem-int-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/vec-extract-mem-short-4.c [new file with mode: 0644]
This page took 0.066751 seconds and 6 git commands to generate.