summaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-28 13:28:57 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-28 13:28:57 +0000
commit6b6ed2782130f967b79bc191371982f3211492db (patch)
treee488681d57627afbc35743e4c99b6553c5d52d45 /gcc/config
parent09399c7dc05400a19ae7c1bde08163044dbe0a17 (diff)
downloadgcc-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.md5
-rw-r--r--gcc/config/epiphany/epiphany.opt4
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.