http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56548
--- Comment #5 from Steve Ellcey <sje at gcc dot gnu.org> 2013-03-06 18:04:30 UTC --- For the record, this does undo the performance regression fix on MIPS. I will submit a new bug for that issue. The problem (on mips) is that we want to do a conditional move of a short to a destination that already contains a short. Since we don't have a short conditional move we use an int conditional move, but we shouldn't need to 'reconvert' the moved integer back to a short by masking off the upper bits. They are already zero because the source and dest of the conditional move were both shorts.