From 4ec943d630c6860998a30384c81fcc0446d7c656 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sat, 16 Nov 2019 13:31:28 +0000 Subject: [PATCH] [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 gcc/ * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT output in UNSPEC_WRFFR. From-SVN: r278356 --- gcc/ChangeLog | 5 +++++ gcc/config/aarch64/aarch64-sve.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e99cfe70d10..48c09573bc5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-11-16 Richard Sandiford + + * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT + output in UNSPEC_WRFFR. + 2019-11-16 Richard Sandiford * tree-data-ref.c (create_intersect_range_checks_index): Rewrite diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md index cdc3b4c3f4a..4427609b579 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 -- 2.30.2