[Patch 1/5] rs6000, Add 128-bit sign extension support

Carl Love cel@us.ibm.com
Thu Aug 13 18:09:10 GMT 2020


Segher:

On Thu, 2020-08-13 at 12:36 -0500, Segher Boessenkool wrote:
> Hi!
> 
> On Tue, Aug 11, 2020 at 12:22:37PM -0700, Carl Love wrote:
> > +/* Sign extend builtins that work on ISA 3.0, but not defined
> > until ISA 3.1.  */
> 
> What does this mean?  Not defined in GCC before now?  Does it need
> backporting?  Not defined in older versions of the ELFv2 ABI (or
> vector
> doc) and we do not want a backport?
> 
> > +  /* Sign extend builtins that work work on ISA 3.0, not added
> > until ISA 3.1 */

The builtins

vector signed int vec_signexti (vector signed char a)
vector signed long long vec_signextll (vector signed char a)
vector signed int vec_signexti (vector signed short a)
vector signed long long vec_signextll (vector signed short a)
vector signed long long vec_signextll (vector signed int a)

were defined in the function prototypes directory in box called "RFC
2608 - 128-bit Binary Integer Operations".  The document the new P10
builtins.  However, this subset of the newly defined builtins for P10
can be implemented with existing Power 9 instructions.  That was the
point of the comment.  That is probably a level of detail that is not
really needed in the GCC code comment.  Probably best to just change
the comment to read something like "ISA 3.0 sign extend builtins". 

My thought for calling it out is that they could be back ported to an
earlier GCC version since they use Power 9 instructions but it is
probably not worth the effort unless there is an explicit request for
them. 

                 Carl 



More information about the Gcc-patches mailing list