aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/predicates.md
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-08-07 19:15:58 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-08-07 19:15:58 +0000
commit9b6fb97c99abe64147f82a3ea6e6ed598e387482 (patch)
treea17e8c78f837d27323e987efa07cd86a13a484aa /gcc/config/aarch64/predicates.md
parent61ee25b9e7d84fbb18218887d1fecfb10f72993a (diff)
downloadgcc-9b6fb97c99abe64147f82a3ea6e6ed598e387482.zip
gcc-9b6fb97c99abe64147f82a3ea6e6ed598e387482.tar.gz
gcc-9b6fb97c99abe64147f82a3ea6e6ed598e387482.tar.bz2
[AArch64] Fix INSR for zero floats
We used INSR to handle zero integers but not zero floats. 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/constraints.md (Z): Handle floating-point zeros too. * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise. gcc/testsuite/ * gcc.target/aarch64/sve/init_13.c: New test. From-SVN: r274193
Diffstat (limited to 'gcc/config/aarch64/predicates.md')
-rw-r--r--gcc/config/aarch64/predicates.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
index 10100ca..2cd0b87 100644
--- a/gcc/config/aarch64/predicates.md
+++ b/gcc/config/aarch64/predicates.md
@@ -57,9 +57,9 @@
(match_test "REGNO_REG_CLASS (REGNO (op)) == FP_REGS"))))
(define_predicate "aarch64_reg_or_zero"
- (and (match_code "reg,subreg,const_int")
+ (and (match_code "reg,subreg,const_int,const_double")
(ior (match_operand 0 "register_operand")
- (match_test "op == const0_rtx"))))
+ (match_test "op == CONST0_RTX (GET_MODE (op))"))))
(define_predicate "aarch64_reg_or_fp_zero"
(ior (match_operand 0 "register_operand")