i386: Fix VPMOV splitter [PR105993]
commit1d6044c250e3badfa2a403fee670b295106bf4fc
authorUros Bizjak <ubizjak@gmail.com>
Fri, 17 Jun 2022 14:22:20 +0000 (17 16:22 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Fri, 17 Jun 2022 14:23:12 +0000 (17 16:23 +0200)
tree41cd82c1adc36b5c292b657960679dba4f7ae308
parent06a1b0418fb31b833119089ea37d5d3df372a13e
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.
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/pr105993.c [new file with mode: 0644]