From patchwork Tue Sep 16 12:13:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juergen Christ X-Patchwork-Id: 120353 Return-Path: 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 CCD173857738 for ; Tue, 16 Sep 2025 12:13:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CCD173857738 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=baATNQhz X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 782673858D39 for ; Tue, 16 Sep 2025 12:13:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 782673858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 782673858D39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758024792; cv=none; b=oVayyaOL+3gzi4+KyHX2Sj11MYohYcGR1D829MMrBWuU/oquu4yyW+OAk+7JcPA+++/3UQ+pI5aaZ3KWC6I4BmKfz+HQdvNHz+v57L5l6aXkpa/SyfqcHqbDUHnk/aqZfn45L1+4Jib3YnL5oUQ5vfzVlOsu9U5K0Pfja9pWg30= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758024792; c=relaxed/simple; bh=B6hK3ai49Qs7IgnLdwpnPSerBe3rej0nYt2fMc6S7W0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=MWIuOt8y60ddUVT7WU3eyIG5/YOeFENSxgDkecaU+OdHlGSTYmEpwK0o7+NnMl72iRoA8otfW6FdIdHL7IEuj20rIhX0u7VdNwvOMoQ/yR58g6DBra5ZxaHkFGEuc3PUCACvbUqDYQFGgwAkrvndXc57PcWPDItfpaKCvt6Y9cM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 782673858D39 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58G67Eg2016401 for ; Tue, 16 Sep 2025 12:13:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=pp1; bh=pxf9aBkWJQsxOOitxNLyFJsabhFq+Qq0ifqWZ4PF1 ms=; b=baATNQhzG5bALXsMcafKM/EIM3sgCwdVbs8hBAKQGouGWNA2dB0uNwkZv boU37tIh7e/Vy3y7cBSL4TJ6MkEbR0N1H8JA0OmfpHWgqA5/df1FzUQ1vUnZPOE+ iVFb9se8klAHBpsN8IullCDaJs19s8yKlfI9nngMEsX6tKirEOxao2HkiLHhMdKO yeW4QG4e+cpxTTdMGPT8AuEv7A+t42eKCYACvfIdyblY/8VD+TuJ1EWEPG3NJNvk lTh5QsrWBzpLeiytzX++c3a7lEy4RpG43xN5ylZasnmRL5fGDfioLY3sL7i9MmYx QQCsmr/gqbYDuiX7zCGAng8eeGHsw== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 494y1x848x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 16 Sep 2025 12:13:11 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58GA2qd7022300 for ; Tue, 16 Sep 2025 12:13:11 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 495kxpkrnx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 16 Sep 2025 12:13:11 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58GCD7dU36045244 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 16 Sep 2025 12:13:07 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3D91020040; Tue, 16 Sep 2025 12:13:07 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 25D632004B; Tue, 16 Sep 2025 12:13:07 +0000 (GMT) Received: from li-3a824ecc-34fe-11b2-a85c-eae455c7d911.ibm.com (unknown [9.152.222.38]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 16 Sep 2025 12:13:07 +0000 (GMT) From: Juergen Christ To: gcc-patches@gcc.gnu.org Cc: krebbel@linux.ibm.com, stefansf@linux.ibm.com Subject: [PATCH] s390x: Fix fmin/fmax patterns Date: Tue, 16 Sep 2025 14:13:03 +0200 Message-ID: <20250916121303.51772-1-jchrist@linux.ibm.com> X-Mailer: git-send-email 2.43.7 MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTEzMDAxMCBTYWx0ZWRfXzs6d+rjfxLKz noPmMTV+m8U42iKh3t7dxQUjZwVH7evqRePN+A+eVo8GnKIiu8NXzN9SGZUWQH2Bj6jSDznlvbW MHx1fI/U3DuIbomzS5AWWC9/N70NRP7DV6tdKgOEt60m2eHH+JVUh0Ydj4zX2D1sqpxl72+FOPn 6agFo8Qounhp1Sfzwp8LX23nztk/wEaThmvKyjICIBYPTOhittOfy/P9JBKBsUU/NUe63UlenmL SZbye/9cLCnFbcXq+aALaLh7otN4dzGCKlCUHHeu9lrfbYFNeGNPgZYT7O31OchKRipufVsIOLh 4SDTbZbObLBqbFMJi/pr+lyC9lA/4+wDSiEBDKISmWZ5Qs5fqXfYMibEapbhXs96fgv+VEzphB5 K7SKP3BV X-Proofpoint-ORIG-GUID: Mu6_9WUvyaceQxurL0GKz90NxC_rCeAQ X-Authority-Analysis: v=2.4 cv=euPfzppX c=1 sm=1 tr=0 ts=68c95457 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=yJojWOMRYYMA:10 a=VnNF1IyMAAAA:8 a=g8UlAr_CrcpSTeSHPD8A:9 X-Proofpoint-GUID: Mu6_9WUvyaceQxurL0GKz90NxC_rCeAQ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-16_02,2025-09-12_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509130010 X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org s390x floating point minimum and maximum functions unfortunately do not canonicalize NaNs. Hence, test pr105414.c fails since c476f554e3f. Fix this by only allowing fmin/fmax pattern if trapping math is disabled. Bootstrapped and reg-tested on s390x. Ok for trunk? gcc/ChangeLog: * config/s390/vector.md (fmax3): Restrict to no trapping math. (fmin3): Ditto. gcc/testsuite/ChangeLog: * gcc.target/s390/fminmax-1.c: Force no trapping math. * gcc.target/s390/fminmax-2.c: Ditto. * gcc.target/s390/vector/reduc-minmax-1.c: Ditto. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md | 8 ++++---- gcc/testsuite/gcc.target/s390/fminmax-1.c | 2 +- gcc/testsuite/gcc.target/s390/fminmax-2.c | 2 +- gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index 205ead2ca9d8..70832ea72c11 100644 --- a/gcc/config/s390/vector.md +++ b/gcc/config/s390/vector.md @@ -3663,7 +3663,7 @@ (match_operand:VFT_BFP 2 "register_operand") (const_int 4)] UNSPEC_FMAX))] - "TARGET_VXE") + "TARGET_VXE && !flag_trapping_math") ; fmin (define_expand "fmin3" @@ -3672,7 +3672,7 @@ (match_operand:VFT_BFP 2 "register_operand") (const_int 4)] UNSPEC_FMIN))] - "TARGET_VXE") + "TARGET_VXE && !flag_trapping_math") ; reduc_plus (define_expand "reduc_plus_scal_" @@ -3764,7 +3764,7 @@ (unspec:V2DF [(match_dup 1) (match_dup 2) (const_int 4)] REDUC_FMINMAX)) (set (match_operand:DF 0 "register_operand" "") (vec_select:DF (match_dup 3) (parallel [(const_int 0)])))] - "TARGET_VX" + "TARGET_VX && !flag_trapping_math" { operands[2] = gen_reg_rtx (V2DFmode); operands[3] = gen_reg_rtx (V2DFmode); @@ -3787,7 +3787,7 @@ (unspec:V4SF [(match_dup 3) (match_dup 4) (const_int 4)] REDUC_FMINMAX)) (set (match_operand:SF 0 "register_operand") (vec_select:SF (match_dup 5) (parallel [(const_int 0)])))] - "TARGET_VXE" + "TARGET_VXE && !flag_trapping_math" { operands[2] = gen_reg_rtx (V4SFmode); operands[3] = gen_reg_rtx (V4SFmode); diff --git a/gcc/testsuite/gcc.target/s390/fminmax-1.c b/gcc/testsuite/gcc.target/s390/fminmax-1.c index df10905f037a..756a19970a50 100644 --- a/gcc/testsuite/gcc.target/s390/fminmax-1.c +++ b/gcc/testsuite/gcc.target/s390/fminmax-1.c @@ -1,7 +1,7 @@ /* Check fmin/fmax expanders for scalars on VXE targets. */ /* { dg-do compile } */ -/* { dg-options "-O2 -march=z14 -mzarch" } */ +/* { dg-options "-O2 -march=z14 -mzarch -fno-trapping-math" } */ /* { dg-final { check-function-bodies "**" "" } } */ /* diff --git a/gcc/testsuite/gcc.target/s390/fminmax-2.c b/gcc/testsuite/gcc.target/s390/fminmax-2.c index ea37a0a821de..ac090c65d1bd 100644 --- a/gcc/testsuite/gcc.target/s390/fminmax-2.c +++ b/gcc/testsuite/gcc.target/s390/fminmax-2.c @@ -1,7 +1,7 @@ /* Check fmin/fmax expanders for scalars on non-VXE targets. */ /* { dg-do compile } */ -/* { dg-options "-O2 -march=z13 -mzarch" } */ +/* { dg-options "-O2 -march=z13 -mzarch -fno-trapping-math" } */ /* { dg-final { scan-assembler-times "jg" 4 } } */ double diff --git a/gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c b/gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c index 5295250dcb74..7f4d16a03ddd 100644 --- a/gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c +++ b/gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -mzarch -march=z14 -ftree-vectorize -fdump-tree-optimized" } */ +/* { dg-options "-O3 -mzarch -march=z14 -ftree-vectorize -fdump-tree-optimized -fno-trapping-math" } */ #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) > (b) ? (b) : (a))