aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-11-16 13:31:28 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-11-16 13:31:28 +0000
commit4ec943d630c6860998a30384c81fcc0446d7c656 (patch)
treee543a570bb7d1842ee1a5abec731533801bf20f2
parentf9d6338bd15ce1fae36bf25d3a0545e9678ddc58 (diff)
downloadgcc-4ec943d630c6860998a30384c81fcc0446d7c656.zip
gcc-4ec943d630c6860998a30384c81fcc0446d7c656.tar.gz
gcc-4ec943d630c6860998a30384c81fcc0446d7c656.tar.bz2
[AArch64] Robustify aarch64_wrffr
This patch uses distinct values for the FFR and FFRT outputs of aarch64_wrffr, so that a following aarch64_copy_ffr_to_ffrt has an effect. This is needed to avoid regressions with later patches. The block comment at the head of the file already described the pattern this way, and there was already an unspec for it. Not sure what made me change it... 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT output in UNSPEC_WRFFR. From-SVN: r278356
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64-sve.md2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e99cfe7..48c0957 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
+ * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT
+ output in UNSPEC_WRFFR.
+
+2019-11-16 Richard Sandiford <richard.sandiford@arm.com>
+
* tree-data-ref.c (create_intersect_range_checks_index): Rewrite
the index tests to have the form (unsigned T) (B - A + bias) <= limit.
diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md
index cdc3b4c..4427609 100644
--- a/gcc/config/aarch64/aarch64-sve.md
+++ b/gcc/config/aarch64/aarch64-sve.md
@@ -984,7 +984,7 @@
[(set (reg:VNx16BI FFR_REGNUM)
(match_operand:VNx16BI 0 "aarch64_simd_reg_or_minus_one" "Dm, Upa"))
(set (reg:VNx16BI FFRT_REGNUM)
- (match_dup 0))]
+ (unspec:VNx16BI [(match_dup 0)] UNSPEC_WRFFR))]
"TARGET_SVE"
"@
setffr