On Fri, Mar 03, 2017 at 02:58:06PM -0600, Segher Boessenkool wrote: > On Fri, Mar 03, 2017 at 03:43:03PM -0500, Michael Meissner wrote: > > On Fri, Mar 03, 2017 at 02:19:57PM -0600, Segher Boessenkool wrote: > > > On Fri, Mar 03, 2017 at 05:28:27PM +0100, Jakub Jelinek wrote: > > > Yeah, it looks like these patterns should use VSX_D instead of VSX_LE. > > > Mike, you know this code best, what do you think? > > > > Bill Schmidt added these, but he is gone for the day. > > > > No, these patterns need to use VSX_LE, but V1TI should be moved from VSX_LE > > to > > VSX_LE_128. VSX_LE_128 is used for things like IEEE 128-bit floating point > > and > > 128-bit integers that can't use vec_select. In fact there is this comment: > > > > ;; Little endian word swapping for 128-bit types that are either scalars or > > the > > ;; special V1TI container class, which it is not appropriate to use > > vec_select > > ;; for the type. > > Okay, but there are also these comments: > > ;; Iterator for the 2 64-bit vector types > (define_mode_iterator VSX_D [V2DF V2DI]) > > ;; Iterator for the 2 64-bit vector types + 128-bit types that are loaded with > ;; lxvd2x to properly handle swapping words on little endian > (define_mode_iterator VSX_LE [V2DF V2DI V1TI]) > > so that removing V1TI from VSX_LE makes it exactly equal to VSX_D.
Yep, VSX_LE would now be redunant. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797