Disable float128 tests on VxWorks, PR target/104253. In PR target/104253, it was pointed out the that test case added as part of fixing the PR does not work on VxWorks because float128 is not supported on that system. I have modified the three tests for float128 so that they are manually excluded on VxWorks systems. In looking at the code, I also added checks in check_effective_target_ppc_ieee128_ok to disable the systems that will never support VSX instructions which are required for float128 support (eabi, eabispe, darwin).
I have run the tests on my usual Linux systems (little endian power10, little endian power9, big endian power8), but I don't have access to a VxWorks system. Eric does this fix the failure for you? If it does fix the failure, can I apply the patch to the master branch and backport it to GCC 11 and GCC 10? Sorry about the breakage. 2022-04-07 Michael Meissner <meiss...@linux.ibm.com> gcc/testsuite/ PR target/104253 * lib/target-supports.exp (check_ppc_float128_sw_available): Do not run float128 tests on VxWorks. (check_ppc_float128_hw_available): Likewise. (check_effective_target_ppc_ieee128_ok): Do not run float128 tests on VxWorks. Also disable systems that do not support VSX instructions. --- gcc/testsuite/lib/target-supports.exp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ff8edbd3e17..a4142eaee27 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2318,10 +2318,12 @@ proc check_ppc_mma_hw_available { } { proc check_ppc_float128_sw_available { } { return [check_cached_effective_target ppc_float128_sw_available { # Some simulators are known to not support VSX/power8/power9 - # instructions. For now, disable on Darwin. + # instructions. For now, disable on Darwin. Disable on VxWorks as + # well. if { [istarget powerpc-*-eabi] || [istarget powerpc*-*-eabispe] - || [istarget *-*-darwin*]} { + || [istarget *-*-darwin*] + || [istarget *-*-vxworks]} { expr 0 } else { set options "-mfloat128 -mvsx" @@ -2344,10 +2346,11 @@ proc check_ppc_float128_sw_available { } { proc check_ppc_float128_hw_available { } { return [check_cached_effective_target ppc_float128_hw_available { # Some simulators are known to not support VSX/power8/power9 - # instructions. For now, disable on Darwin. + # instructions. For now, disable on Darwin and VxWorks. if { [istarget powerpc-*-eabi] || [istarget powerpc*-*-eabispe] - || [istarget *-*-darwin*]} { + || [istarget *-*-darwin*] + || [istarget *-*-vxworks]} { expr 0 } else { set options "-mfloat128 -mvsx -mfloat128-hardware -mpower9-vector" @@ -2370,8 +2373,12 @@ proc check_ppc_float128_hw_available { } { # See if the __ieee128 keyword is understood. proc check_effective_target_ppc_ieee128_ok { } { return [check_cached_effective_target ppc_ieee128_ok { - # disable on AIX. - if { [istarget *-*-aix*] } { + # disable on AIX, Darwin, VxWorks and targets that don't support VSX. + if { [istarget *-*-aix*] + || [istarget powerpc-*-eabi] + || [istarget powerpc*-*-eabispe] + || [istarget *-*-darwin*] + || [istarget *-*-vxworks]} { expr 0 } else { set options "-mfloat128" -- 2.35.1 -- Michael Meissner, IBM PO Box 98, Ayer, Massachusetts, USA, 01432 email: meiss...@linux.ibm.com