------- Comment #1 from TabonyEE at austin dot rr dot com 2007-03-04 02:25 ------- For some reason, defining WORD_REGISTER_OPERATIONS prevents Combine from transforming the HI load followed by the AND with 0xFF into a zero-extending QI load. I don't know why this would be. I think not defining WORD_REGISTER_OPERATIONS should always be safe. I'm sure defining WORD_REGISTER_OPERATIONS is somehow masking the real problem.
Another odd thing is that BlackFin (bfin) produces the same code up to Life1, just before Combine, but Combine does not perform the aforementioned transformation even though bfin does not define WORD_REGISTER_OPERATIONS. bfin has a zero-extending QI load pattern and GO_IF_LEGITIMATE_ADDRESS accepts a QI mode POST_INC. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30798