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

--- Comment #19 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Tue Jan  5 20:19:16 2016
New Revision: 232088

URL: https://gcc.gnu.org/viewcvs?rev=232088&root=gcc&view=rev
Log:
Use vector_operand on SSE with 16b memory operand

Add vector_operand, which is vector_memory_operand or register_operand,
and use it, instead of nonimmediate_operand, in SSE patterns with 16-byte
memory operand.

gcc/

        PR target/68991
        * config/i386/i386.c (ix86_expand_vector_logical_operator):
        Replace nonimmediate_operand with vector_operand.
        * config/i386/predicates.md (vector_operand): New predicate.
        (general_vector_operand): Replace nonimmediate_operand with
        vector_operand.
        * config/i386/sse.md: Replace nonimmediate_operand with
        vector_operand and m constraint with Bm constraint on SSE
        patterns with 16-byte memory operand.
        * config/i386/subst.md (round_nimm_predicate): Replace
        nonimmediate_operand with vector_operand.
        (round_saeonly_nimm_predicate): Likewise.
        (round_saeonly_nimm_scalar_predicate): New.

gcc/testsuite/

        PR target/68991
        * gcc.target/i386/pr68991.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr68991.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/predicates.md
    trunk/gcc/config/i386/sse.md
    trunk/gcc/config/i386/subst.md
    trunk/gcc/testsuite/ChangeLog

Reply via email to