http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45291
Georg Lay <avr at gjlay dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |avr at gjlay dot de --- Comment #2 from Georg Lay <avr at gjlay dot de> 2010-11-04 16:04:02 UTC --- insn 34 renders insn 33 invalid. This is due to subreg semantics. There are several places in several versions of avr backend that use this technique and will introduce similar bugs that might look different or become visible in different passes. Amongst them are: o bytewise shift o bytewise rotate o zero-extending o bytewise insert o perhaps many more Without tracking it down, this particular case semms to be generated by a zero-extend. Moreover, there are several optimization flaws that are connected with this resp. optimization opportunities not implemented yet. As some recrafting will be needed to fix this anyway, I propose to write the backend so that these optimization issues will be kicked out (or will vanish without any effort if patterns are defined appropriately). As I see Erik CC'ed and I think he has a better overview of bugs/optimization flaws related to this issue, maybe it's best if he picks one bug and marks the others as duplicate of it.