[Patch 8/17] Make _Float16 available if HFmode is available
authorJames Greenhalgh <james.greenhalgh@arm.com>
Wed, 23 Nov 2016 17:25:41 +0000 (17:25 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Wed, 23 Nov 2016 17:25:41 +0000 (17:25 +0000)
gcc/

* targhooks.c (default_floatn_mode): Enable _Float16 if a target
provides HFmode.

From-SVN: r242778

gcc/ChangeLog
gcc/targhooks.c

index 963f022550fbf1f7b850c29d7a70f545a5235cc3..5a19b6052053fed18e67fb2f734ea0503c0b3df3 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * targhooks.c (default_floatn_mode): Enable _Float16 if a target
+       provides HFmode.
+
 2016-11-23  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete.
index 73e1c2584ae7abe58af3e65a04cee4caf57f7789..a80b30172995377e98fd7086fdcd0b408d5042e1 100644 (file)
@@ -514,10 +514,12 @@ default_floatn_mode (int n, bool extended)
       switch (n)
        {
        case 16:
-         /* We do not use HFmode for _Float16 by default because the
-            required excess precision support is not present and the
-            interactions with promotion of the older __fp16 need to
-            be worked out.  */
+         /* Always enable _Float16 if we have basic support for the mode.
+            Targets can control the range and precision of operations on
+            the _Float16 type using TARGET_C_EXCESS_PRECISION.  */
+#ifdef HAVE_HFmode
+         cand = HFmode;
+#endif
          break;
 
        case 32: