summaryrefslogtreecommitdiff
path: root/gcc/config/ia64/constraints.md
diff options
context:
space:
mode:
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 18:32:37 +0000
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 18:32:37 +0000
commit3cc9aaf18aefefd170f7f8ec76682a6679dc6da9 (patch)
treeaeb803c62cd134d45b19cbdee16678cff31e4443 /gcc/config/ia64/constraints.md
parent2008c983ffb7dfdf757812a4e499203f760184c3 (diff)
downloadgcc-3cc9aaf18aefefd170f7f8ec76682a6679dc6da9.tar.gz
2010-07-29 Steve Ellcey <sje@cup.hp.com>
PR target/44583 * config/ia64/constraints.md (Z): New. * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New. (xfreg_or_signed_fp01_operand): New. * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand with fr_reg_or_signed_fp01_operand and constraint G with Z. (subsf3): Ditto. (*maddsf4): Ditto. (*msubsf4): Ditto. (adddf3): Ditto. (adddf3_trunc): Ditto. (subdf3): Ditto. (*subdf3_trunc): Ditto. (*madddf4): Ditto. (*madddf4_trunc): Ditto. (*msubdf4): Ditto. (*msubdf4_trunc): Ditto. (addxf3): Replace xfreg_or_fp01_operand with xfreg_or_signed_fp01_operand and constraint G with Z. (*addxf3_truncsf): Ditto. (*addxf3_truncdf): Ditto. (subxf3): Ditto. (*subxf3_truncsf): Ditto. (*subxf3_truncdf): Ditto. (*maddxf4): Ditto. (*maddxf4_truncsf): Ditto. (*maddxf4_truncdf): Ditto. (*msubxf4): Ditto. (*msubxf4_truncsf): Ditto. (*msubxf4_truncdf): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64/constraints.md')
-rw-r--r--gcc/config/ia64/constraints.md7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/ia64/constraints.md b/gcc/config/ia64/constraints.md
index 5d119131bba..aeb846e6c24 100644
--- a/gcc/config/ia64/constraints.md
+++ b/gcc/config/ia64/constraints.md
@@ -95,6 +95,13 @@
(and (match_code "const_double")
(match_test "op == CONST0_RTX (mode) || op == CONST1_RTX (mode)")))
+(define_constraint "Z"
+ "1.0 or (0.0 and !flag_signed_zeros)"
+ (and (match_code "const_double")
+ (ior (match_test "op == CONST1_RTX (mode)")
+ (and (match_test "op == CONST0_RTX (mode)")
+ (match_test "!flag_signed_zeros")))))
+
(define_constraint "H"
"0.0"
(and (match_code "const_double")