Message ID | Yk5ouVh7fw09nXLK@toto.the-meissners.org |
---|---|
State | New |
Headers |
Return-Path: <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5E1223858C2D for <patchwork@sourceware.org>; Thu, 7 Apr 2022 04:30:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E1223858C2D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1649305822; bh=8zBAzJnuBxkDhGt2sYU6rsU0le4EcumDd4Mjf50uSS0=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=v9GFI6sFt41IfScWW3i7hgk/AID3vdUTyrC+qoSzha59kXBg1BT/cDq7tylDg3xBW 6xkt6VbOjk7L23De40eIDXPnu8cvJZVVJOCKw3Qi1aYoDQKkEvmcrKd9l39kNrQKUn TbytovCFjX1TmQASXywAfuuEqytWJ+sffBpPz+Nw= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id B15993858D37; Thu, 7 Apr 2022 04:29:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B15993858D37 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 23739Uxv013726; Thu, 7 Apr 2022 04:29:50 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3f95vxfh6v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 07 Apr 2022 04:29:49 +0000 Received: from m0098409.ppops.net (m0098409.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 2374SoOb016548; Thu, 7 Apr 2022 04:29:49 GMT Received: from ppma03dal.us.ibm.com (b.bd.3ea9.ip4.static.sl-reverse.com [169.62.189.11]) by mx0a-001b2d01.pphosted.com with ESMTP id 3f95vxfh6n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 07 Apr 2022 04:29:49 +0000 Received: from pps.filterd (ppma03dal.us.ibm.com [127.0.0.1]) by ppma03dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2374RAJ9015926; Thu, 7 Apr 2022 04:29:48 GMT Received: from b01cxnp23032.gho.pok.ibm.com (b01cxnp23032.gho.pok.ibm.com [9.57.198.27]) by ppma03dal.us.ibm.com with ESMTP id 3f6e4a4q9d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 07 Apr 2022 04:29:48 +0000 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2374Tl3M18743554 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 7 Apr 2022 04:29:47 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5B631AC066; Thu, 7 Apr 2022 04:29:47 +0000 (GMT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1970BAC05B; Thu, 7 Apr 2022 04:29:47 +0000 (GMT) Received: from toto.the-meissners.org (unknown [9.65.244.27]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTPS; Thu, 7 Apr 2022 04:29:47 +0000 (GMT) Date: Thu, 7 Apr 2022 00:29:45 -0400 To: gcc-patches@gcc.gnu.org, Michael Meissner <meissner@linux.ibm.com>, Segher Boessenkool <segher@kernel.crashing.org>, David Edelsohn <dje.gcc@gmail.com>, Peter Bergner <bergner@linux.ibm.com>, Will Schmidt <will_schmidt@vnet.ibm.com>, ebotcazou@gcc.gnu.org Subject: [PATCH] Disable float128 tests on VxWorks, PR target/104253. Message-ID: <Yk5ouVh7fw09nXLK@toto.the-meissners.org> Mail-Followup-To: Michael Meissner <meissner@linux.ibm.com>, gcc-patches@gcc.gnu.org, Segher Boessenkool <segher@kernel.crashing.org>, David Edelsohn <dje.gcc@gmail.com>, Peter Bergner <bergner@linux.ibm.com>, Will Schmidt <will_schmidt@vnet.ibm.com>, ebotcazou@gcc.gnu.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-TM-AS-GCONF: 00 X-Proofpoint-GUID: VkNScnvroteoSoz_1Fy8wqfFo3870VxL X-Proofpoint-ORIG-GUID: 29icBZLL8jv9Hc0ZLWi6BARaPmz6LXPK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.850,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-04-06_13,2022-04-06_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1011 priorityscore=1501 impostorscore=0 bulkscore=0 lowpriorityscore=0 mlxlogscore=999 phishscore=0 spamscore=0 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204070021 X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_MANYTO, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> From: Michael Meissner via Gcc-patches <gcc-patches@gcc.gnu.org> Reply-To: Michael Meissner <meissner@linux.ibm.com> Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org> |
Series |
Disable float128 tests on VxWorks, PR target/104253.
|
|
Commit Message
Michael Meissner
April 7, 2022, 4:29 a.m. UTC
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 <meissner@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(-)
Comments
> 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? Yes, if you add '*' at the end of the selector, i.e. [istarget *-*-vxworks*]. > 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. That would be perfect, thanks in advance.
On Thu, Apr 07, 2022 at 12:29:45AM -0400, Michael Meissner wrote: > 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). It's just one extra to the big list here, but, why do we need all these manual exclusions anyway? What is broken about the test itself? It would be so much more useful if the tests would help us, instead of producing a lot of extra busy-work. Segher
On Thu, 2022-04-07 at 06:00 -0500, Segher Boessenkool wrote: > On Thu, Apr 07, 2022 at 12:29:45AM -0400, Michael Meissner wrote: > > 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). > > It's just one extra to the big list here, but, why do we need all these > manual exclusions anyway? What is broken about the test itself? From the PR, it looks like this test noted an error, not actually a failure. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104253#c17 cc1: warning: The '-mfloat128' option may not be fully supported which comes out of gcc/config/rs6000/rs6000.cc rs6000_option_override_internal() via /* IEEE 128-bit floating point requires VSX support. */ if (TARGET_FLOAT128_KEYWORD) { if (!TARGET_VSX) { <snip> } else if (!TARGET_FLOAT128_TYPE) { TARGET_FLOAT128_TYPE = 1; warning (0, "The %<-mfloat128%> option may not be fully supported"); } } > > It would be so much more useful if the tests would help us, instead of > producing a lot of extra busy-work. > > > Segher
On Thu, Apr 07, 2022 at 08:50:53AM -0500, will schmidt wrote: > On Thu, 2022-04-07 at 06:00 -0500, Segher Boessenkool wrote: > > On Thu, Apr 07, 2022 at 12:29:45AM -0400, Michael Meissner wrote: > > > 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). > > > > It's just one extra to the big list here, but, why do we need all these > > manual exclusions anyway? What is broken about the test itself? > > >From the PR, it looks like this test noted an error, not actually a > failure. > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104253#c17 > > cc1: warning: The '-mfloat128' option may not be fully supported Aha, thanks for checking. If that is what causes the error, the test in target-supports needs robustifying. > > It would be so much more useful if the tests would help us, instead of > > producing a lot of extra busy-work. (^^^ to help improve this) Segher
On Thu, Apr 07, 2022 at 06:00:51AM -0500, Segher Boessenkool wrote: > On Thu, Apr 07, 2022 at 12:29:45AM -0400, Michael Meissner wrote: > > 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). > > It's just one extra to the big list here, but, why do we need all these > manual exclusions anyway? What is broken about the test itself? > > It would be so much more useful if the tests would help us, instead of > producing a lot of extra busy-work. Those lines were copied from other lines in the power7 era, and have just been copied since then. I agree it is perhaps time to remove these in GCC 13, but I would be hesitant to remove them now. I can not put in the eabi, eabispe and darwin lines in check_effective_target_ppc_ieee128_ok, and just add the vsxworks lines. With these changes can I check these in and then do a backport later?
On Thu, Apr 07, 2022 at 12:47:27PM +0200, Eric Botcazou wrote: > > 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? > > Yes, if you add '*' at the end of the selector, i.e. [istarget *-*-vxworks*]. Ok. > > 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. > > That would be perfect, thanks in advance. > > -- > Eric Botcazou > >
Hi! On Thu, Apr 07, 2022 at 02:59:55PM -0400, Michael Meissner wrote: > On Thu, Apr 07, 2022 at 06:00:51AM -0500, Segher Boessenkool wrote: > > On Thu, Apr 07, 2022 at 12:29:45AM -0400, Michael Meissner wrote: > > > 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). > > > > It's just one extra to the big list here, but, why do we need all these > > manual exclusions anyway? What is broken about the test itself? > > > > It would be so much more useful if the tests would help us, instead of > > producing a lot of extra busy-work. > > Those lines were copied from other lines in the power7 era, and have just been > copied since then. And never updated or given any (second) thought :-( > I agree it is perhaps time to remove these in GCC 13, but I > would be hesitant to remove them now. I can not put in the eabi, eabispe and > darwin lines in check_effective_target_ppc_ieee128_ok, and just add the > vsxworks lines. What I want to see is the tests (in target-supports) to just work, without manual intervention for targets that are even mildly interesting :-( (Btw, powerpc*-*-eabi* would be simpler, more compact, and more correct here!) > With these changes can I check these in and then do a backport later? Eric already approved it. It is fine with me of course, but I do want things to get better eventually! Segher
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"