diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-08-07 19:15:58 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-08-07 19:15:58 +0000 |
commit | 9b6fb97c99abe64147f82a3ea6e6ed598e387482 (patch) | |
tree | a17e8c78f837d27323e987efa07cd86a13a484aa /gcc/config/aarch64/predicates.md | |
parent | 61ee25b9e7d84fbb18218887d1fecfb10f72993a (diff) | |
download | gcc-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.md | 4 |
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") |