https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44532
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Last reconfirmed|2010-06-14 11:30:39 |2019-3-4 CC| |steven at gcc dot gnu.org Resolution|--- |WONTFIX --- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> --- GCC trunk today:" f1(short, int): movswl %di, %eax imull %esi, %eax ret f2(unsigned short, int): movzwl %di, %eax imull %esi, %eax ret clang trunk: f1(short, int): # @f1(short, int) movl %edi, %eax imull %esi, %eax retq f2(unsigned short, int): # @f2(unsigned short, int) movl %edi, %eax imull %esi, %eax retq icc 19.0.1: f1(short, int): movswq %di, %rax #3.12 imull %esi, %eax #3.16 ret #3.16 f2(unsigned short, int): movzwl %di, %eax #7.1 imull %esi, %eax #8.16 ret Given the comments from H.J. and the icc output, let's WONTFIX this one.