https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15184
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |law at redhat dot com --- Comment #30 from Jeffrey A. Law <law at redhat dot com> --- Actually better to handle this in combine rather than the backend. The problem is the "to-be-inserted" bits have different canonical forms depending on where we're inserting them. if it's the low bits it might be (subreg....) or a zero_extend. If it's middle bits, there's an (and ..) and if its in the high bits, then there's an (ashift ...) It gets even uglier when we start looking at the 2nd pair of tests By nailing it down in combine, other targets benefit as well. For the combiner, the first two tests (and a couple of my own) are pretty easy. It's far enough along that taking ownership seems to make sense. Attacking the problem in bswap would be good, but obviously further out.