public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-6421] aarch64: Fix wrong code for bfloat when f16 is enabled [PR 111867]
@ 2023-12-11 16:00 Andrew Pinski
  0 siblings, 0 replies; only message in thread
From: Andrew Pinski @ 2023-12-11 16:00 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:35ade856eaafd9c39ce864b25d127e1f98a3bb57

commit r14-6421-g35ade856eaafd9c39ce864b25d127e1f98a3bb57
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Sat Dec 9 20:02:24 2023 -0800

    aarch64: Fix wrong code for bfloat when f16 is enabled [PR 111867]
    
    The problem here is when f16 is enabled, movbf_aarch64 accepts `Ufc`
    as a constraint:
         [ w        , Ufc ; fconsts     , fp16  ] fmov\t%h0, %1
    But that is for fmov values and in this case fmov represents f16 rather than bfloat16 values.
    This means we would get the wrong value in the register.
    
    Built and tested for aarch64-linux-gnu with no regressions.  Also tested with `-march=armv9-a+sve2,
    gcc.dg/torture/bfloat16-basic.c and gcc.dg/torture/bfloat16-builtin.c no longer fail.
    
    gcc/ChangeLog:
    
            PR target/111867
            * config/aarch64/aarch64.cc (aarch64_float_const_representable_p): For BFmode,
            only accept +0.0.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>

Diff:
---
 gcc/config/aarch64/aarch64.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index a58b02d8421..21a24d92b02 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -23936,6 +23936,10 @@ aarch64_float_const_representable_p (rtx x)
       || REAL_VALUE_MINUS_ZERO (r))
     return false;
 
+  /* For BFmode, only handle 0.0. */
+  if (GET_MODE (x) == BFmode)
+    return real_iszero (&r, false);
+
   /* Extract exponent.  */
   r = real_value_abs (&r);
   exponent = REAL_EXP (&r);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-11 16:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 16:00 [gcc r14-6421] aarch64: Fix wrong code for bfloat when f16 is enabled [PR 111867] Andrew Pinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).