On Fri, Nov 16, 2018 at 04:26:18PM -0600, Peter Bergner wrote:
> On 11/16/18 11:06 AM, Segher Boessenkool wrote:
> > On Tue, Nov 13, 2018 at 11:29:20AM -0600, Peter Bergner wrote:
> >> I'll note I didn't change the vsx_mov<mode>_32bit pattern, since TImode
> >> isn't supported with -m32.  However, if you want, I could remove the
> >> redundant "*r" <- "jwM" alternative there too?
> > 
> > Yeah, please keep the patterns in synch.
> 
> Ok, here is the patch with the vsx_mov<mod>_32bit pattern changed too.
> 
> However, when I made the change below, the length attribute seems a
> little off.  For *_64bit, we have a length of 4, but for *_32bit, we
> have a length of 32.  The "4" looks correct for both *_64bit and *_32bit
> if we're loading an easy_vector_constant into one of the vector regs.
> For loading a TImode constant into a GPR, then it could be anything from
> 8 bytes to 40bytes (loading 0xdeadbeefcafebabefacefeedbaaaaaad) for
> -m64.  Since TImode isn't supposrted in -m32 (yet?), who knows, probably
> it would be 16 bytes to ??? bytes.
> 
> Should those sizes be updated too?  If so, what should they be?
> The smallest, average or worst case lengths?  I assume we could use
> another iterator to separate the vector lengths from the gpr lengths
> if we need to.

Worst case.  This is required for correctness.


Segher

Reply via email to