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] SHIFT_COUNT_TRUNCATED and shift_truncation_mask


On Fri, May 10, 2019 at 09:42:47AM +0200, Richard Biener wrote:
> On Fri, May 10, 2019 at 9:25 AM Uros Bizjak <ubizjak@gmail.com> wrote:
> > > But IL semantic differences based on mode is even worse.  What happens
> > > if STV then substitues a vector register/op but you previously optimized
> > > with the assumption the count would be truncated since the shift was SImode?

What is STV?

> But that's more a combine limitation than a reason going for the
> "hidden" IL semantic change.  But yes, if the and is used by
> non-masking insns then it's likely cheap enough to retain it.
> 
> If the masking were always in place (combined with the shift
> if a suitable insn exists) then STV handling should be possible,
> it just would need to split the insn to do the masking and then the shift
> (of course that might not be very profitable).

Why does the pattern with masking split?  It could just be a define_insn.
Combine will try to get rid of the masking, to simplify the RTL.  Going in the
other direction is probably not profitable :-/


Segher


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