[PATCH] Make xxsplti*, xpermx, xxeval be vecperm type.

Segher Boessenkool segher@kernel.crashing.org
Wed Aug 25 17:44:16 GMT 2021


Hi Mike,

On Wed, Aug 25, 2021 at 12:37:14PM -0400, Michael Meissner wrote:
> 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.

They are all executed on the PM pipe currently, yup.  If this changes
later we'll have to fix it, but that is for then :-)

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

In the future please do separate things as separate patches.

> 	* config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from
> 	UNSPEC_XXSPLTID.

	* config/rs6000/vsx.md (UNSPEC_XXSPLTID): Rename to...
	(UNSPEC_XXSPLTIDP): ... this.

> 	(xxspltidp_v2df): Use vecperm type attribute.  Use
> 	UUNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID.

Typo ("UU").

Okay for trunk with those trivial fixes.  Also okay for backport to 11,
it is trivial enough.  Thanks!

Out of interest, did you notice any scheduling differences with this?


Segher


More information about the Gcc-patches mailing list