https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97528
ktkachov at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2020-10-23 CC| |ktkachov at gcc dot gnu.org Status|UNCONFIRMED |NEW --- Comment #1 from ktkachov at gcc dot gnu.org --- Confirmed. A better testcase, using arm_neon.h intrinsics is: #include <arm_neon.h> typedef __simd64_int16_t a; typedef __simd64_uint16_t b; unsigned short c; int d; b e; void f() { unsigned short *dst = &c; int g = d, bw = 4; b dc = e; for (int h = 0; h < bw; h++) { unsigned short *i = dst; b j = dc; vst1_s16 ((int16_t *)i, (a) j); dst += g; } } I see this ICEing on 9.3.1 as well (GCC 8 branch is ok)