]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/90724 (ICE with __sync_bool_compare_and_swap with -march=armv8.2-a+sve)
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Wed, 21 Aug 2019 18:34:43 +0000 (18:34 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Tue, 18 Feb 2020 08:51:58 +0000 (08:51 +0000)
2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
Backport from mainline
2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR target/90724
* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
in reg if it fails aarch64_plus_operand predicate.

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index 812e4f08b32dac747e40d830a84e5c829f1dac9c..967a9fb4539efcfa9e265f7cf7abb24007d2d7de 100644 (file)
@@ -1,3 +1,12 @@
+2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>
+
+       Backport from mainline
+       2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+
+       PR target/90724
+       * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
+       in reg if it fails aarch64_plus_operand predicate.
+
 2020-02-14 Hongtao Liu  <hongtao.liu@intel.com>
 
        PR target/93724
index 26a28570be9f7a9d99488f2851bbe09228e55a95..b452a53af99dd6e7a7119780aaa51e2a7939c65e 100644 (file)
@@ -1910,6 +1910,9 @@ aarch64_gen_compare_reg_maybe_ze (RTX_CODE code, rtx x, rtx y,
        }
     }
 
+  if (!aarch64_plus_operand (y, y_mode))
+    y = force_reg (y_mode, y);
+
   return aarch64_gen_compare_reg (code, x, y);
 }