From: Joern Rennecke Date: Wed, 28 Nov 2012 13:28:57 +0000 (+0000) Subject: epiphany.opt (-may-round-for-trunc): New option. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=be74e49e0db90b4e87fde8c20df95bbae97bedca;p=gcc.git epiphany.opt (-may-round-for-trunc): New option. * config/epiphany/epiphany.opt (-may-round-for-trunc): New option. * config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it into account. From-SVN: r193891 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1d4a0c93ea7..5d503fd1520 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -8,6 +8,9 @@ for misaligned memory operands. * config/epiphany/predicates.md (misaligned_operand): New predicate. + * config/epiphany/epiphany.opt (-may-round-for-trunc): New option. + * config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it into account. + 2012-11-28 Richard Biener PR tree-optimization/54547 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.