On 8/22/19 4:53 PM, Kyrill Tkachov wrote:
Hi all,

We currently have a nasty error when trying to use the __crc* intrinsics with an -mfloat-abi=hard. That is because the target pragma guarding them uses armv8-a+crc that does not include fp by default.
So we get errors like:
error: '-mfloat-abi=hard': selected processor lacks an FPU

This patch fixes that by using an FP-enabled arch target pragma to guard these intrinsics when floating-point is available.
That way both the softfloat and hardfloat variants work.

Bootstrapped and tested on arm-none-linux-gnueabihf.

Committing to trunk. Will backport to branches later.

Now backported to GCC 9 and 8 branches after bootstrapping and testing there.

Will do GCC 7 once I get more testing cycles.

Thanks,

Kyrill


Thanks,
Kyrill

2019-08-22  Kyrylo Tkachov <kyrylo.tkac...@arm.com>

    * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
    intrinsics if __ARM_FP.
    Use __ARM_FEATURE_CRC32 ifdef guard.

2019-08-22  Kyrylo Tkachov <kyrylo.tkac...@arm.com>

    * gcc.target/arm/acle/crc_hf_1.c: New test.

Reply via email to