[Bug target/105993] [13 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1932 with -O -mxop

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jun 17 14:23:23 GMT 2022


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

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

https://gcc.gnu.org/g:1d6044c250e3badfa2a403fee670b295106bf4fc

commit r13-1155-g1d6044c250e3badfa2a403fee670b295106bf4fc
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Fri Jun 17 16:22:20 2022 +0200

    i386: Fix VPMOV splitter [PR105993]

    REGNO should not be used with register_operand before reload because
    subregs of registers or even subregs of memory match the predicate.
    The build with RTL checking enabled does not tolerate REGNO with
    non-reg operand.
    The patch splits the splitter into two related splitters and uses
    (match_dup ...) RTXes instead of REGNO comparisons.

    2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>

    gcc/ChangeLog:

            PR target/105993
            * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
            instead of REGNO comparisons in combine splitter.

    gcc/testsuite/ChangeLog:

            PR target/105993
            * gcc.target/i386/pr105993.c: New test.


More information about the Gcc-bugs mailing list