This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/78132] [7 Regression] GCC produces invalid instruction (kmovd and kmovq) for KNL.


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

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
The failing instruction is pre-existing movdi_internal.

        movzwl  c(%rip), %eax   # 5     zero_extendhidi2/1      [length = 8]
        kmovw   e(%rip), %k1    # 9     *movhi_internal/6       [length = 9]
        movzbl  a(%rip), %edx   # 13    *movqi_internal/3       [length = 8]
        kmovq   %rax, %k0       # 51    *movdi_internal/23      [length = 4]
        kmovw   %k0, %ecx       # 40    *movqi_internal/10      [length = 4]

Unsupported insn alternatives should be also conditionally enabled in QI, SI
and DI move patterns, in the same way as the fix for PR 77476.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]