Re: [PATCH] arm: [testcase] Better narrow some bfloat16 testcase
On Thu, 5 Nov 2020 at 15:30, Andrea Corallo wrote: > > Christophe Lyon writes: > > > On Thu, 5 Nov 2020 at 12:11, Andrea Corallo wrote: > >> > >> Christophe Lyon writes: > >> > >> [...] > >> > >> >> I think you need to add -mfloat-abi=hard to the dg-additional-options > >> >> otherwise vld1_lane_bf16_1.c > >> >> fails on targets with a soft float-abi default (eg arm-linux-gnueabi). > >> >> > >> >> See bf16_vldn_1.c. > >> > > >> > Actually that's not sufficient because in turn we get: > >> > /sysroot-arm-none-linux-gnueabi/usr/include/gnu/stubs.h:10:11: fatal > >> > error: gnu/stubs-hard.h: No such file or directory > >> > > >> > So you should check that -mfloat-abi=hard is supported. > >> > > >> > Ditto for the vst tests. > >> > >> Hi Christophe, > >> > >> this patch should implement your suggestions. > >> > >> On my arm-none-linux-gnueabi setup the tests were already skipped > >> as unsupported so if you could test and confirm this fixes the > >> issue you see would be great. > > > > Do you know why they are unsupported in your setup? > > We probably have a different GCC configuration. Could you share how > it's configured your? > Sure, for instance: --target=arm-none-linux-gnueabi --with-float=soft --with-mode=arm --with-cpu=cortex-a9 > >> diff --git a/gcc/testsuite/lib/target-supports.exp > >> b/gcc/testsuite/lib/target-supports.exp > >> index 15f0649f8ae..2ab7e39756d 100644 > >> --- a/gcc/testsuite/lib/target-supports.exp > >> +++ b/gcc/testsuite/lib/target-supports.exp > >> @@ -5213,6 +5213,10 @@ proc > >> check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { > >> return 0; > >> } > >> > >> +if { ! [check_effective_target_arm_hard_ok] } { > >> + return 0; > >> +} > >> + > >> foreach flags {"" "-mfloat-abi=hard -mfpu=neon-fp-armv8" > >> "-mfloat-abi=softfp -mfpu=neon-fp-armv8" } { > >> if { [check_no_compiler_messages_nocache arm_v8_2a_bf16_neon_ok > >> object { > >> #include > > > > This seems strange since you would now exit early if > > check_effective_target_arm_hard_ok is false, so you'll never need the > > -mfloat-abi=softfp version of the flags. > > So IIUC your suggestion would be to test with higher priority softfp and > in case we decide to go for hardfp make sure > check_effective_target_arm_hard_ok is satisfied. Am I correct? > ISTM that other tests that need hardfp check if it's supported in the test, not in other effective targets. For instance mve/intrinsics/mve_fpu1.c I can see that quite a few tests that use -mfloat-abi=hard do not check whether it's supported. Those I checked do not include arm_neon.h and thus do not end up with the gnu/stubs-hard.h error above. > > BTW in general, I think softfp is tried before hard in the other > > similar effective targets, any reason the order is different here? > > No idea. > > Thanks > > Andrea
Re: [PATCH] arm: [testcase] Better narrow some bfloat16 testcase
Christophe Lyon writes: > On Thu, 5 Nov 2020 at 12:11, Andrea Corallo wrote: >> >> Christophe Lyon writes: >> >> [...] >> >> >> I think you need to add -mfloat-abi=hard to the dg-additional-options >> >> otherwise vld1_lane_bf16_1.c >> >> fails on targets with a soft float-abi default (eg arm-linux-gnueabi). >> >> >> >> See bf16_vldn_1.c. >> > >> > Actually that's not sufficient because in turn we get: >> > /sysroot-arm-none-linux-gnueabi/usr/include/gnu/stubs.h:10:11: fatal >> > error: gnu/stubs-hard.h: No such file or directory >> > >> > So you should check that -mfloat-abi=hard is supported. >> > >> > Ditto for the vst tests. >> >> Hi Christophe, >> >> this patch should implement your suggestions. >> >> On my arm-none-linux-gnueabi setup the tests were already skipped >> as unsupported so if you could test and confirm this fixes the >> issue you see would be great. > > Do you know why they are unsupported in your setup? We probably have a different GCC configuration. Could you share how it's configured your? >> diff --git a/gcc/testsuite/lib/target-supports.exp >> b/gcc/testsuite/lib/target-supports.exp >> index 15f0649f8ae..2ab7e39756d 100644 >> --- a/gcc/testsuite/lib/target-supports.exp >> +++ b/gcc/testsuite/lib/target-supports.exp >> @@ -5213,6 +5213,10 @@ proc >> check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { >> return 0; >> } >> >> +if { ! [check_effective_target_arm_hard_ok] } { >> + return 0; >> +} >> + >> foreach flags {"" "-mfloat-abi=hard -mfpu=neon-fp-armv8" >> "-mfloat-abi=softfp -mfpu=neon-fp-armv8" } { >> if { [check_no_compiler_messages_nocache arm_v8_2a_bf16_neon_ok >> object { >> #include > > This seems strange since you would now exit early if > check_effective_target_arm_hard_ok is false, so you'll never need the > -mfloat-abi=softfp version of the flags. So IIUC your suggestion would be to test with higher priority softfp and in case we decide to go for hardfp make sure check_effective_target_arm_hard_ok is satisfied. Am I correct? > BTW in general, I think softfp is tried before hard in the other > similar effective targets, any reason the order is different here? No idea. Thanks Andrea
Re: [PATCH] arm: [testcase] Better narrow some bfloat16 testcase
On Thu, 5 Nov 2020 at 12:11, Andrea Corallo wrote: > > Christophe Lyon writes: > > [...] > > >> I think you need to add -mfloat-abi=hard to the dg-additional-options > >> otherwise vld1_lane_bf16_1.c > >> fails on targets with a soft float-abi default (eg arm-linux-gnueabi). > >> > >> See bf16_vldn_1.c. > > > > Actually that's not sufficient because in turn we get: > > /sysroot-arm-none-linux-gnueabi/usr/include/gnu/stubs.h:10:11: fatal > > error: gnu/stubs-hard.h: No such file or directory > > > > So you should check that -mfloat-abi=hard is supported. > > > > Ditto for the vst tests. > > Hi Christophe, > > this patch should implement your suggestions. > > On my arm-none-linux-gnueabi setup the tests were already skipped > as unsupported so if you could test and confirm this fixes the > issue you see would be great. Do you know why they are unsupported in your setup? > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index 15f0649f8ae..2ab7e39756d 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -5213,6 +5213,10 @@ proc > check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { > return 0; > } > > +if { ! [check_effective_target_arm_hard_ok] } { > + return 0; > +} > + > foreach flags {"" "-mfloat-abi=hard -mfpu=neon-fp-armv8" > "-mfloat-abi=softfp -mfpu=neon-fp-armv8" } { > if { [check_no_compiler_messages_nocache arm_v8_2a_bf16_neon_ok > object { > #include This seems strange since you would now exit early if check_effective_target_arm_hard_ok is false, so you'll never need the -mfloat-abi=softfp version of the flags. BTW in general, I think softfp is tried before hard in the other similar effective targets, any reason the order is different here? Christophe > > Thanks! > > Andrea >