[Bug target/95766] Failure to directly use vpbroadcastd for _mm_set1_epi32 when passing unsigned short

crazylht at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jul 9 08:07:07 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95766

--- Comment #4 from Hongtao.liu <crazylht at gmail dot com> ---
Simple case:

cat test.c:
int f(unsigned short a)
{
    return a * 101;
}

gcc:
f(unsigned short):
  movzwl %di, %eax
  imull $101, %eax, %eax
  ret

llvm:
f(unsigned short): # @f(unsigned short)
  imull $101, %edi, %eax
  retq

GCC always does the conversion.


More information about the Gcc-bugs mailing list