]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PATCH PR96357][GCC][AArch64]: could not split insn UNSPEC_COND_FSUB with AArch64 SVE
authorPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Fri, 28 Aug 2020 10:31:04 +0000 (11:31 +0100)
committerPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Wed, 9 Sep 2020 08:38:06 +0000 (09:38 +0100)
commit41d22ec51c4190133a082197e7ff67b4741fc09b
treed50147acb95918df1addd3e9f23da3a36e20c40b
parent05d38c3447a76b14f70c9a2e2b11992e944a6a47
[PATCH PR96357][GCC][AArch64]: could not split insn UNSPEC_COND_FSUB with AArch64 SVE

Problem is related to that operand 4 (In original pattern
cond_sub<mode>_any_const) is no longer the same as operand 1, and so
the pattern doesn't match the split condition.

Pattern cond_sub<mode>_any_const is being split by this patch into two
separate patterns:
* Pattern cond_sub<mode>_relaxed_const now matches const_int
  SVE_RELAXED_GP operand.
* Pattern cond_sub<mode>_strict_const now matches const_int
  SVE_STRICT_GP operand.
* Remove aarch64_sve_pred_dominates_p condition from both patterns.

gcc/ChangeLog:

PR target/96357
* config/aarch64/aarch64-sve.md
(cond_sub<mode>_relaxed_const): Updated and renamed from
cond_sub<mode>_any_const pattern.
(cond_sub<mode>_strict_const): New pattern.

gcc/testsuite/ChangeLog:

PR target/96357
* gcc.target/aarch64/sve/pr96357.c: New test.
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/gcc.target/aarch64/sve/pr96357.c [new file with mode: 0644]