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

--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Uros Bizjak <u...@gcc.gnu.org>:

https://gcc.gnu.org/g:80d7032067a3a5b76aecd657d9b35b0a8f5a941d

commit r15-4359-g80d7032067a3a5b76aecd657d9b35b0a8f5a941d
Author: Uros Bizjak <ubiz...@gmail.com>
Date:   Tue Oct 15 16:51:33 2024 +0200

    i386: Fix expand_vector_set for VEC_MERGE/VEC_DUPLICATE RTX [PR117116]

    Middle end can generate SYMBOL_REF RTX as a value "val" in the call
    to expand_vector_set, but SYMBOL_REF RTX is not accepted in
    <sse2p4_1>_pinsr<ssemodesuffix> insn pattern, generated via
    VEC_MERGE/VEC_DUPLICATE RTX path.

    Force the value into a register before VEC_MERGE/VEC_DUPLICATE RTX
    is generated if it doesn't satisfy nonimmediate_operand predicate.

            PR target/117116

    gcc/ChangeLog:

            * config/i386/i386-expand.cc (expand_vector_set): Force "val"
            into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated
            if it doesn't satisfy nonimmediate_operand predicate.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr117116.c: New test.

Reply via email to