On Wed, Jun 5, 2013 at 12:13 PM, Michael Meissner <meiss...@linux.vnet.ibm.com> wrote: > On Wed, Jun 05, 2013 at 10:28:02AM -0400, David Edelsohn wrote: >> +;; The canonical form is to have the negated elment first, so we need to >> +;; reverse arguments. >> >> Please fix the typo in the comment: "element". > > Ok. I need to proof-read the patches before sending them out. > >> +;; Like VSX_L, but don't support TImode for doing logical instructions in >> +;; 32-bit >> +(define_mode_iterator VSX_L2 [V16QI V8HI V4SI V2DI V4SF V2DF]) >> + >> ;; Iterator for memory move. Handle TImode specially to allow >> ;; it to use gprs as well as vsx registers. >> (define_mode_iterator VSX_M [V16QI V8HI V4SI V2DI V4SF V2DF]) >> >> +(define_mode_iterator VSX_M2 [V16QI >> + V8HI >> + V4SI >> + V2DI >> + V4SF >> + V2DF >> + (TI "TARGET_VSX_TIMODE")]) >> >> The patch adds new iterators VSX_L2 and VSX_M2. The original >> ChangeLog only mentioned M2 and the new ChangeLog only mentions L2. >> What's going on? > > I thought I had deleted VSX_M2 from this patch. It will be needed in patch #8 > for the fusion peephole. The difference is VSX_L2 avoids TImode altogether, > and was used by the logical ops to prevent TImode operations in VSX registers > in 32-bit. > > The problem is unless we have expanders/splitters for logical DImode, the > compiler when it wants to do a logical DImode operation says, aha I have a > TImode operation, and then it converts the DImode value to TImode, does the > operation (which in turn may mean transfer between GPR and VSX registers). > > I can add splitters and such for 32-bit DImode to prevent this, but I don't > know if you want me to do it in the context of this patch, or do it as a later > patch.
Okay, the revised patch #4 is okay with the typos fixed and either the ChangeLog or the patch adjusted for iterators VSX_L2 and VSX_M2 -- the ChangeLog and patch need to match. But I view this as a preliminary step. The logical instructions need an iterator and TImode needs to be cleaned up on 32 bit. Thanks, David