https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65407

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra
             Target|                            |x86
                 CC|                            |hjl.tools at gmail dot com,
                   |                            |kyukhin at gcc dot gnu.org,
                   |                            |vmakarov at gcc dot gnu.org

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Happens in reload:

(insn 17 11 19 2 (parallel [
            (set (reg:HI 69 k0 [104])
                (and:HI (not:HI (reg:HI 69 k0 [orig:100 k1 ] [100]))
                    (reg:HI 70 k1 [orig:102 k2 ] [102])))
            (clobber (reg:CC 17 flags))
        ]) /ssd/uros/gcc-build/prev-gcc/include/avx512fintrin.h:9995 388
{kandnhi}
     (nil))
...
(insn 36 21 29 2 (set (reg:HI 71 k2 [104])
        (reg:HI 69 k0 [104]))
/ssd/uros/gcc-build/prev-gcc/include/avx512fintrin.h:10718 92 {*movhi_internal}
     (nil))
(insn 29 36 31 2 (set (reg:V16SF 21 xmm0 [109])
        (vec_merge:V16SF (plus:V16SF (reg:V16SF 23 xmm2 [orig:91 D.26753 ]
[91])
                (reg:V16SF 22 xmm1 [orig:90 D.26753 ] [90]))
            (reg:V16SF 21 xmm0 [orig:92 D.26753 ] [92])
            (reg:HI 71 k2 [104])))
/ssd/uros/gcc-build/prev-gcc/include/avx512fintrin.h:10718 1356
{*addv16sf3_mask}
     (nil))

The constraint for mask register in (insn 29) is Yk (so, k1 to k7) and reload
satisfies this by emitting input reload from k0 -> k2. Ideally, k2 should be
chosen as output register from (insn 17).

Reply via email to