This is the mail archive of the 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: RFA: DSE replace_read revisited

Richard Sandiford <> writes:
> "Andrew Pinski" <> writes:
>> On 10/28/07, Richard Sandiford <> wrote:
>>>   (4) The code requires the store and read to have the same mode class:
>>>         if (GET_MODE_CLASS (read_mode) != GET_MODE_CLASS (store_mode))
>>>           return false;
>>>       This seems unnecessarily restrictive.  I guess it was meant to
>>>       be a simplifying assumption, but as per (1) and (2) above,
>>>       it isn't really.
>> Does this part fix PR 33927 where we have V4SI and V4SF?
> It should, subject to MODES_TIEABLE_P allowing the necessary mode changes
> (to and from TImode in this case).
> It appears from validate_subreg that direct subregs between V4SI and
> V4SF are allowed, so we could also add an extra case to extract_low_bits:
>   if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (src_mode)
>       && MODES_TIEABLE_P (mode, src_mode))
>     {
>       rtx x = gen_lowpart (mode, src);
>       if (x)
>         return x;
>     }

Sorry, this should have been gen_lowpart_common, not gen_lowpart.


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