[Bug target/106022] [12/13 Regression] Enable vectorizer generates extra load
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jun 20 02:07:49 GMT 2022
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.
More information about the Gcc-bugs
mailing list