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)))

Reply via email to