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