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. > * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv > instruction. > > Why isn't this covered by boolean_operator and %q output operand? And > why can't that predicate and output operand handle vsx as well, e.g., > *vsx_eqv? Why don't we simply have vsx_bool<mode>3, etc. See my reply to Segher that boolc doesn't use the canonical form, so eqv is not currently generated. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797