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