]> gcc.gnu.org Git - gcc.git/commit
Make xxsplti*, xpermx, xxeval be vecperm type.
authorMichael Meissner <meissner@linux.ibm.com>
Wed, 25 Aug 2021 19:11:47 +0000 (15:11 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Wed, 25 Aug 2021 19:11:47 +0000 (15:11 -0400)
commitbb24717e5042b6e8a3847e780a8d215edb9c62f6
tree95dd822838ffd16ac34a23b42211a28c4f4e030c
parent3ac6b5cff1eca4e1748c671960ef7b4ca5e47fd2
Make xxsplti*, xpermx, xxeval be vecperm type.

I noticed that the built-functions for xxspltiw, xxspltidp, xxsplti32dx,
xxpermx, and xxeval all used the 'vecsimple' type.  These instructions are
permute instructions (3 cycle latency) and should use 'vecperm' instead.

While I was at it, I changed the UNSPEC name for xxspltidp to be
UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID.

2021-08-25  Michael Meissner  <meissner@linux.ibm.com>

gcc/
* config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from
UNSPEC_XXSPLTID.
(xxspltiw_v4si): Use vecperm type attribute.
(xxspltiw_v4si_inst): Use vecperm type attribute.
(xxspltiw_v4sf_inst): Likewise.
(xxspltidp_v2df): Use vecperm type attribute.  Use
UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID.
(xxspltidp_v2df_inst): Likewise.
(xxsplti32dx_v4si): Use vecperm type attribute.
(xxsplti32dx_v4si_inst): Likewise.
(xxsplti32dx_v4sf_inst): Likewise.
(xxblend_<mode>): Likewise.
(xxpermx): Likewise.
(xxpermx_inst): Likewise.
(xxeval): Likewise.
gcc/config/rs6000/vsx.md
This page took 0.059386 seconds and 6 git commands to generate.