[PATCH] PR target/117449: Restrict vector rotate match and split to pre-reload
Kyrylo Tkachov
ktkachov@nvidia.com
Tue Nov 5 16:57:40 GMT 2024
Hi all,
The vector rotate splitter has some logic to deal with post-reload splitting
but not all cases in aarch64_emit_opt_vec_rotate are post-reload-safe.
In particular the ROTATE+XOR expansion for TARGET_SHA3 can create RTL that
can later be simplified to a simple ROTATE post-reload, which would then
match the insn again and try to split it.
So do a clean split pre-reload and avoid going down this path post-reload
by restricting the insn_and_split to can_create_pseudo_p ().
Bootstrapped and tested on aarch64-none-linux.
Pushing to trunk.
Thanks,
Kyrill
Signed-off-by: Kyrylo Tkachov <ktkachov@nvidia.com>
gcc/
PR target/117449
* config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
Match only when can_create_pseudo_p ().
* config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Assume
can_create_pseudo_p ().
gcc/testsuite/
PR target/117449
* gcc.c-torture/compile/pr117449.c: New test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-PR-target-117449-Restrict-vector-rotate-match-and-sp.patch
Type: application/octet-stream
Size: 4385 bytes
Desc: 0001-PR-target-117449-Restrict-vector-rotate-match-and-sp.patch
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20241105/53a11f79/attachment.obj>
More information about the Gcc
mailing list