This patch is a backport of PR97251 fix already commited to master.

OK for gcc-10 branch ?

This patch fixes ICEs when compiling
gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c with
-mfp16-format=ieee -mfloat-abi=hard -march=armv8.1-m.main+mve
-mpure-code.

The existing conditions in the movsf/movdf expanders (as well as the
no_literal_pool patterns) were too restrictive, requiring
TARGET_HARD_FLOAT instead of TARGET_VFP_BASE, which caused unrecognised
insns when compiling this testcase with integer MVE and -mpure-code.

gcc/:

        PR target/97251
        * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to
        TARGET_VFP_BASE.
        (movdf): Likewise.
        * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise.
        (no_literal_pool_sf_immediate): Likewise.

Attachment: PR97251_backport.patch
Description: PR97251_backport.patch

Reply via email to