[Bug target/92658] x86 lacks vector extend / truncate

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Feb 28 08:43:00 GMT 2020


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

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
Richi, should the following test also vectorize?

--cut here--
typedef unsigned char v16qi __attribute__((vector_size (16)));
typedef unsigned int v4si __attribute__((vector_size (16)));

void
foo_u8_u32 (v4si * dst, v16qi * __restrict src)
{
  unsigned int tem[4];
  tem[0] = (*src)[0];
  tem[1] = (*src)[1];
  tem[2] = (*src)[2];
  tem[3] = (*src)[3];
  dst[0] = *(v4si *) tem;
}

void
bar_u8_u32 (v4si * dst, v16qi src)
{
  unsigned int tem[4];
  tem[0] = src[0];
  tem[1] = src[1];
  tem[2] = src[2];
  tem[3] = src[3];
  dst[0] = *(v4si *) tem;
}
--cut here--


More information about the Gcc-bugs mailing list