This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] VEC_SELECT sanity checking in genrecog


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: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]