https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106022
--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to H.J. Lu from comment #1) > SLP thinks that it needs 4 stores to store 4 bytes of integer constant. > But it takes only 1 4-byte store. I think we can simplify that at combine. Failed to match this instruction: (set (mem:V4QI (reg:DI 84) [0 MEM <vector(4) char> [(char *)c_2(D)]+0 S4 A8]) (const_vector:V4QI [ (const_int 0 [0]) (const_int 1 [0x1]) (const_int 2 [0x2]) (const_int 3 [0x3]) ])) x86 at most supports mov imm64, m64, so v2qi/v4qi/v8qi/v2hi/v4hi/v2hf/v4hf const_vector stores can be simplified to just mov imm64/imm32/imm16, m64/m32/m16.