------- Comment #30 from ubizjak at gmail dot com 2008-03-20 00:04 ------- (In reply to comment #28) > (In reply to comment #27) > > The store is not useless. Reload from "_w" is how gcc handles double stores > > nowadays and is not mmx specific. It looks that some pass forgot to check > > where > > the value came from. > > Do you happen to know if there are two different modes at work here? If so > there are patches which fix this up in DSE and post-reload CSE.
Yes, from comment #24 (slightly changed): typedef short mmxw __attribute__ ((vector_size (8))); typedef int mmxdw __attribute__ ((vector_size (8))); mmxdw dw; mmxw w; so, we have V4HI and V2SI. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14552