[Bug target/105993] [13 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1932 with -O -mxop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105993 Uroš Bizjak changed: What|Removed |Added Resolution|--- |FIXED Target Milestone|--- |13.0 Status|UNCONFIRMED |RESOLVED --- Comment #4 from Uroš Bizjak --- Fixed.
[Bug target/105993] [13 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1932 with -O -mxop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105993 --- Comment #3 from CVS Commits --- The master branch has been updated by Uros Bizjak : https://gcc.gnu.org/g:1d6044c250e3badfa2a403fee670b295106bf4fc commit r13-1155-g1d6044c250e3badfa2a403fee670b295106bf4fc Author: Uros Bizjak 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 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.
[Bug target/105993] [13 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1932 with -O -mxop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105993 --- Comment #2 from Uroš Bizjak --- Created attachment 53149 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53149=edit Patch to fix the failure The patch fixes this particular failure by using (match_dup X). In general, rtx_equal_p should be used before reload (also with register_operand). REGNO on register_operand is valid only after reload (post-reload splitters and peephole2 patterns).
[Bug target/105993] [13 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1932 with -O -mxop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105993 Hongtao.liu changed: What|Removed |Added CC||crazylht at gmail dot com --- Comment #1 from Hongtao.liu --- It looks like there're several places we use REGNO for register_operand before RA, they're all problematic.