http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51667
--- Comment #10 from Uros Bizjak <ubizjak at gmail dot com> 2011-12-24 12:46:38 UTC --- The problem is illustrated in the second code dump of Comment #7. The second movzwl can be merged with the first one, but we still need movswl to correctly extend the HImode value to SImode.