https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115981
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Redundant vmovaps to itself |[14/15 Regression] |after vmovups |Redundant vmovaps to itself | |after vmovups Status|UNCONFIRMED |NEW Last reconfirmed| |2024-07-18 Target Milestone|--- |14.2 Target|X86_64 |x86_64-*-* Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- (insn 7 3 11 2 (set (reg:V4SF 103 [ _3 ]) (mem:V4SF (reg:DI 108) [0 MEM[(__m128_u * {ref-all})a_2(D)]+0 S16 A8])) "/spc/space/rguenther/install/gcc-14.1.1/usr/local/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/include/xmmintrin.h":940:10 2036 {movv4sf_internal} (expr_list:REG_DEAD (reg:DI 108) (nil))) (insn 11 7 16 2 (set (reg:V16SF 101) (vec_merge:V16SF (const_vector:V16SF [ (const_double:SF 0.0 [0x0.0p+0]) repeated x16 ]) (vec_duplicate:V16SF (reg:V4SF 103 [ _3 ])) (const_int 65520 [0xfff0]))) "/spc/space/rguenther/install/gcc-14.1.1/usr/local/lib64/gcc/x86_64-pc-linux-gnu/14.1.1/include/avx512fintrin.h":9206:19 7429 {*avx512f_vinsertf32x4_0} (expr_list:REG_DEAD (reg:V4SF 103 [ _3 ]) (nil))) confirmed. Somehow the fact that movups zero-fills isn't seen. On the 13 branch we have combined these: (insn 11 7 16 2 (set (reg:V16SF 85) (vec_merge:V16SF (const_vector:V16SF [ (const_double:SF 0.0 [0x0.0p+0]) repeated x16 ]) (vec_duplicate:V16SF (mem:V4SF (reg:DI 92) [0 MEM[(__m128_u * {ref-all})a_2(D)]+0 S16 A8])) (const_int 65520 [0xfff0]))) "/spc/space/rguenther/install/gcc-13.3/lib64/gcc/x86_64-pc-linux-gnu/13.3.0/include/avx512fintrin.h":6172:19 7123 {*avx512f_vinsertf32x4_0} (expr_list:REG_DEAD (reg:DI 92) (nil)))