Hi Christophe, Yes, we have also noticed this failure. Here I have a simple patch to remove the mfloat-abi option for hard-float toolchain. The default abi is used. For non-hardfloat toolchain, softfp abi is specified. I have checked with arm-none-eabi and arm-none-linux-gnueabihf toolchain, this problem should be resolved by this patch. Okay to commit? gcc/testsuite/ChangeLog: 2015-06-23 Renlin Li * gcc.target/arm/unsigned-float.c: Different options for hf toolchain. On 16/06/15 14:33, Christophe Lyon wrote: > On 20 March 2015 at 18:03, Renlin Li wrote: >> Hi all, >> >> This is a simple patch to enable two simplifications for UNSIGNED_FLOAT >> expression. >> >> For the following rtx patterns, they can be simplified when the integer x >> can be >> represented in float mode without precision loss: >> >> float_truncate (float x) --> float x >> float_extend (float x) --> float x >> >> Those two simplifications are also applicable to UNSIGNED_FLOAT expression. >> >> For example, compile the following code using aarch64-none-elf toolchain >> with -O1 flag. >> double >> f1 (uint16_t x) >> { >> return (double)(float)x; >> } >> Before the change, the compiler generates the following code: >> f1: >> uxth w0, w0 >> ucvtf s0, w0 >> fcvt d0, s0 >> ret >> After the change, the following simplified asm code snipts are generated. >> f1: >> uxth w0, w0 >> ucvtf d0, w0 >> ret >> >> >> aarch64-none-elf regression test runs Okay. x86_64 bootstraps Okay. >> Okay to commit? >> >> gcc/ChangeLog: >> >> 2015-03-20 Renlin Li >> >> * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two >> simplifications for UNSIGNED_FLOAT. >> >> gcc/testsuite/ChangeLog: >> >> 2015-03-20 Renlin Li >> >> * gcc.target/aarch64/unsigned-float.c: New. >> * gcc.target/arm/unsigned-float.c: New. > This new test fails on ARM targets defaulting to hard-float which have > no softfp multilib. > I'm not sure about the best way to fix this. > > Note that dg-require-effective-target arm_vfp_ok passes, but the > testcase fails because it includes stdint.h, leading to: > sysroot-arm-none-linux-gnueabihf/usr/include/gnu/stubs.h:7:29: fatal > error: gnu/stubs-soft.h: No such file or directory > > Christophe. >