> I think I understand what was being attempted now.  IIUC, the logic
> should have been (again, for the QI/SI instance):
>
>    If at least _26_ bits are set, and if c1 is < 64, ok to make the
> transformation.

Yes, that was the intended logic.

> In this case, I don't see an instance where "compare (subreg (a -
> c1), c2)" is not equivalent to "compare (a - c1, c2)".  It appears to
> be a simple typo in the last line of the conditional:
>
>    (GET_MODE_BITSIZE (inner_mode) - mode_width - 1)
>
> Should be:
>
>    (GET_MODE_BITSIZE (inner_mode) - (mode_width - 1))
>
> or:
>
>    (GET_MODE_BITSIZE (inner_mode) - mode_width + 1)

Yes, I've just come to the same conclusion.  Sorry about the typo.

> I'll run this through a number of tests and submit an actual patch,
> unless I'm still missing something...

Please submit the fix for all active branches and CC me in the submission (and 
Roger Sayle who approved the patch).

Thanks in advance.

-- 
Eric Botcazou

Reply via email to