diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-28 13:28:57 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-28 13:28:57 +0000 |
commit | 6b6ed2782130f967b79bc191371982f3211492db (patch) | |
tree | e488681d57627afbc35743e4c99b6553c5d52d45 /gcc/config | |
parent | 09399c7dc05400a19ae7c1bde08163044dbe0a17 (diff) | |
download | gcc-6b6ed2782130f967b79bc191371982f3211492db.tar.gz |
* config/epiphany/epiphany.opt (-may-round-for-trunc): New option.
* config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it into account.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193891 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/epiphany/epiphany.md | 5 | ||||
-rw-r--r-- | gcc/config/epiphany/epiphany.opt | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/epiphany/epiphany.md b/gcc/config/epiphany/epiphany.md index f65087025e6..d0cbcc4d0d6 100644 --- a/gcc/config/epiphany/epiphany.md +++ b/gcc/config/epiphany/epiphany.md @@ -908,7 +908,10 @@ "" "fix %0, %1" [(set_attr "type" "fp") - (set_attr "fp_mode" "round_trunc")]) + (set (attr "fp_mode") + (cond [(match_test "TARGET_MAY_ROUND_FOR_TRUNC") + (const_string "round_unknown")] + (const_string "round_trunc")))]) (define_expand "fixuns_truncsfsi2" [(set (match_operand:SI 0 "gpr_operand" "") diff --git a/gcc/config/epiphany/epiphany.opt b/gcc/config/epiphany/epiphany.opt index 374018260d4..613bb98e8a9 100644 --- a/gcc/config/epiphany/epiphany.opt +++ b/gcc/config/epiphany/epiphany.opt @@ -103,6 +103,10 @@ Enum(attr_fp_mode) String(truncate) Value(FP_MODE_ROUND_TRUNC) EnumValue Enum(attr_fp_mode) String(int) Value(FP_MODE_INT) +may-round-for-trunc +Target Mask(MAY_ROUND_FOR_TRUNC) +A floatig point to integer truncation may be replaced with rounding to save mode switching + mvect-double Target Mask(VECT_DOUBLE) Vectorize for double-word operations. |