]> gcc.gnu.org Git - gcc.git/commit
Move XXPERMX from altivec.md to vsx.md.
authorMichael Meissner <meissner@linux.ibm.com>
Tue, 13 Apr 2021 22:08:52 +0000 (18:08 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Tue, 13 Apr 2021 22:08:52 +0000 (18:08 -0400)
commitc1bf1eb43beb06241008205edcc24190daffd9e1
tree02d1fb528a235dab4d601c21440b00dea74ae2e5
parentd589b1d9c35642e7a15c2c9013fcdaa17a1e4c8b
Move XXPERMX from altivec.md to vsx.md.

This patch moves the XXPERMX support from altivec.md to vsx.md.  Given
the instruction support all VSX registers, vsx.md is a more proper place
for this instruction.

In doing the move, I discovered that the xxpermx_insn used the "v"
constraint (i.e. Altivec registers), while the instruction actually
supports any VSX register, so I changed the constraint to "wa".

I also changed the register_operand to the more specific
vsx_register_operand.

I was chatting with Pat Haugen, he said that the insn type should be
"vecperm" and not "vecsimple", so I changed this as well.

gcc/
2021-04-13  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/altivec.md (UNSPEC_XXPERMX): Move to vsx.md.
(xxpermx): Move to vsx.md.
(xxpermx_inst): Move to vsx.md.
* config/rs6000/vsx.md (UNSPEC_XXPERMX): Move from altivec.md.
(xxpermx): Move from altivec.md.  Use vsx_register_operand
instead of register_operand.  Remove setting the insn attribute
"type" on the expander.
(xxpermx_inst): Move from altivec.md.  Use vsx_register_operand
instead of register_operand.  Change the constraint from "v" to
"wa" to match the instruction.  Change insn type to vecperm.
gcc/config/rs6000/altivec.md
gcc/config/rs6000/vsx.md
This page took 0.104855 seconds and 6 git commands to generate.