]> git.ipfire.org Git - people/ms/gcc.git/commit
rs6000: Rework vsx_extract_<mode>
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 4 Oct 2022 02:50:22 +0000 (02:50 +0000)
committerSegher Boessenkool <segher@kernel.crashing.org>
Wed, 5 Oct 2022 19:12:28 +0000 (19:12 +0000)
commitba3e5a3826be53ecbb7d6044c50878d44640c296
tree947f82a71a3109e10ff9f55af684b47f9346c244
parentc3d131531a23c71e09c032d6222d0b5ff0eb8162
rs6000: Rework vsx_extract_<mode>

Extracting the left and right halfs of a vector are entirely different
operations.  Things are simpler if they are separate define_insns, and
it is easy to get rid of the "wD" constraint use then.

This also give the variant that is a no-op copy its own alternative, of
length 0 (and this, cost 0, making it more likely RA will choose it.

2022-10-05  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
define_expand.  Split the contents to...
(*vsx_extract_<mode>_0): ... this.  Rewrite.
(*vsx_extract_<mode>_1): ... and this.  Rewrite.
gcc/config/rs6000/vsx.md