Fix PR target/93932
authorMichael Meissner <meissner@gcc.gnu.org>
Thu, 27 Feb 2020 19:41:39 +0000 (14:41 -0500)
committerMichael Meissner <meissner@gcc.gnu.org>
Thu, 27 Feb 2020 19:41:39 +0000 (14:41 -0500)
commit75c299acc47b19fd6c445a6931798325a54e6fb4
tree71ec833f2107d725a207b6278d3e4373dabf95c6
parent9d2d283367a407c1ba9ecdb8590f9295828e25f8
Fix PR target/93932

[gcc]
2020-02-27  Michael Meissner  <meissner@linux.ibm.com>

PR target/93932
* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
Split the insn into two parts.  This insn only does variable
extract from a register.
(vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
variable extract from memory.
(vsx_extract_v4sf_var): Split the insn into two parts.  This insn
only does variable extract from a register.
(vsx_extract_v4sf_var_load): New insn, do variable extract from
memory.
(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
into two parts.  This insn only does variable extract from a
register.
(vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
do variable extract from memory.

[gcc/testsuite]
2020-02-27  Michael Meissner  <meissner@linux.ibm.com>

PR target/93932
* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: Adjust
instruction counts.
gcc/ChangeLog
gcc/config/rs6000/vsx.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/fold-vec-extract-longlong.p8.c