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

Tejas Belagod <belagod at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |belagod at gcc dot gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-09-06
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Tejas Belagod <belagod at gcc dot gnu.org> ---
Also breaks my glibc build - ICEs with this test case reduced from
glibc/dlfcn/dlinfo.c:

/* aarch64-none-linux-gnu-gcc -march=armv8-a+sve -O2 ice.c  */
typedef long unsigned int size_t;
struct link_map
  {
    size_t l_tls_modid;
  };
# 24 "dlinfo.c" 2
struct dlinfo_args
{
  void *handle;
  int request;
  void *arg;
};
void
dlinfo_doit (void *argsblock)
{
  struct dlinfo_args *const args = argsblock;
  struct link_map *l = args->handle;
  *(size_t *) args->arg = 0;
  *(size_t *) args->arg = l->l_tls_modid;
}


>From my prelimnary investigation, it looks like tree-vect-slp is trying to
build the constant vector using duplicate and interleave with 2 V1DI vectors as
with the other example posted above. I haven't dug deep enough if V1DI vectors
are the right thing to do here.

Reply via email to