[GCC][BUG][ARM] Fix ICE due to BFmode libfunc call (PR93300)
authorStam Markianos-Wright <stam.markianos-wright@arm.com>
Wed, 5 Feb 2020 19:21:42 +0000 (19:21 +0000)
committerStam Markianos-Wright <stam.markianos-wright@arm.com>
Thu, 6 Feb 2020 10:20:08 +0000 (10:20 +0000)
commitff861d65950ede95b6c28ac720c56d44cff784de
treeab66f3293322c46e53e720930c0cc08a2caeb73a
parent3f740c67dbb90177aa71d3c60ef9b0fd2f44dbd9
[GCC][BUG][ARM] Fix ICE due to BFmode libfunc call (PR93300)

    This was sent and approved on gcc-patches as "[GCC][BUG][Aarch64][ARM]
    (PR93300) Fix ICE due to BFmode placement in GET_MODES_WIDER chain".

    The observed error came about because BFmode was placed between HFmode
    and SFmode in the GET_MODES_WIDER chain, resulting in convert_mode_scalar
    attempting to gen a libfunc for a HFmode -> BFmode conversion.

    This patch registers NULL for all libfuncs in BFmode, which stops the
    middle-end from attempting to generate them.

    gcc/ChangeLog:
    2020-02-06  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

PR target/93300
* config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
(arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
gcc/ChangeLog
gcc/config/arm/arm.c