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

--- Comment #6 from Bruce Hoult <bruce at hoult dot org> ---
The ICE also happens with bzero().

The ICE does NOT happen with a constant length of 16 of greater, in which case
a function call is made instead of expanding inline.

With rv64gv or rv64gcv a series of N `sb` are generated (N < 16)

With rv64gc_xtheadvector, N >= 6, and -Os a tail call to memset is generated,
no ICE. With N < 6 ... ICE.

So the problem is only trying to expand memset() or bzero() inline. Does it try
to use a vectorised memset? That doesn't happen with rv64gcv.

memcpy() does not ICE for any N.

I assume the originally reported C++ code is generating a memset() to
initialise one of the classes/structs.

Reply via email to