This is the mail archive of the
mailing list for the GCC project.
Re: RFA: DSE replace_read revisited
Richard Sandiford <firstname.lastname@example.org> writes:
> "Andrew Pinski" <email@example.com> writes:
>> On 10/28/07, Richard Sandiford <firstname.lastname@example.org> 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.