[PATCH] V11 patch #3 of 15, Use 'Q' constraint for variable vector extract from memory

Segher Boessenkool segher@kernel.crashing.org
Sun Dec 22 17:49:00 GMT 2019


Hi!

On Fri, Dec 20, 2019 at 06:47:28PM -0500, Michael Meissner wrote:
> Then I realized that eventaully we will want to generate an X-FORM (register +
> register) address, and it was just simpler to use the 'Q' constraint, and have
> the register allocator put the address into a register.

Yep, good call.

> 	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
> 	Use 'Q' for memory constraints because we need to do an X-FORM
> 	load with the variable index.
> 	(vsx_extract_v4sf_var): Use 'Q' for memory constraints because we
> 	need to do an X-FORM load with the variable index.

This comment is a headscratcher -- but you shouldn't say "why" in
changelogs at all, so that is an easy fix ;-)

> 	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator):Use 'Q' for

(missing space)

> 	memory constraints because we need to do an X-FORM load with the
> 	variable index.
> 	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for memory
> 	constraints because we need to do an X-FORM load with the variable
> 	index.

(and more)

> -;; Variable V2DI/V2DF extract
> +;; Variable V2DI/V2DF extract.  Use 'Q' for the memory because we will
> +;; ultimately have to convert the address into base + index.

Maybe just don't write anything at all, since it is hard to explain in a
few words?  It is clear that "Q" is not a usual constraint, anyway :-)

Okay for trunk like that.  Thanks!


Segher



More information about the Gcc-patches mailing list