https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111867
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Maybe something like: diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 62b1ae0652f..db2dde84329 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -23788,7 +23788,8 @@ aarch64_float_const_representable_p (rtx x) return false; if (GET_MODE (x) == VOIDmode - || (GET_MODE (x) == HFmode && !TARGET_FP_F16INST)) + || (GET_MODE (x) == HFmode && !TARGET_FP_F16INST) + || (GET_MODE (x) == BFmode)) return false; r = *CONST_DOUBLE_REAL_VALUE (x);