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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:a9947bac0799b0c91e21b7c612b80cd0b54016f0

commit r10-6230-ga9947bac0799b0c91e21b7c612b80cd0b54016f0
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sun Jan 26 12:12:36 2020 +0100

    i386: Fix up *{add,sub}v<dwi>4_doubleword patterns (PR target/93412)

    In the *{add,sub}v<dwi>4_doubleword patterns, we don't really want to see a
    VOIDmode last operand, because it then means invalid RTL
    (sign_extend:{TI,POI} (const_int ...)) or so, and therefore something we
    don't really handle in the splitter either.  We have
    *{add,sub}v<dwi>4_doubleword_1 pattern for those and that is what combine
    will match, the problem in this testcase is just that it was only RA that
    propagated the constant into the instruction.

    In the similar *{add,sub}v<mode>4 patterns, we make sure not to accept
    VOIDmode operand and similarly to these have _1 suffixed variant that
allows
    constants.

    2020-01-26  Jakub Jelinek  <ja...@redhat.com>

        PR target/93412
        * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
        Use nonimmediate_operand instead of x86_64_hilo_general_operand and
        drop <di> from constraint of last operand.

        * gcc.dg/pr93412.c: New test.

Reply via email to