https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97248
--- Comment #1 from Evan Nemerson <e...@coeus-group.com> --- SImilar issue with right shift: typedef long a; typedef struct { a b __attribute__((__vector_size__(64))); } c; void d() { int e; c f, g; f.b = g.b >> e; } $ mips64el-linux-gnuabi64-g++-10 -march=loongson3a -mmsa -o test test.cpp test.cpp: In function 'void d()': test.cpp:9:1: error: unrecognizable insn: 9 | } | ^ (insn 30 29 31 2 (set (reg:DI 216) (subreg:DI (mem/c:SI (reg/f:DI 189 virtual-stack-vars) [1 e+0 S4 A32]) 0)) "test.cpp":8:13 -1 (nil)) during RTL pass: vregs test.cpp:9:1: internal compiler error: in extract_insn, at recog.c:2294 0x7f567e543d09 __libc_start_main ../csu/libc-start.c:308 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <file:///usr/share/doc/gcc-10/README.Bugs> for instructions.