From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3420 invoked by alias); 5 Sep 2019 11:11:26 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 3354 invoked by uid 89); 5 Sep 2019 11:11:26 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy=ck X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 05 Sep 2019 11:11:24 +0000 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x85B7gMW055292 for ; Thu, 5 Sep 2019 07:11:21 -0400 Received: from e06smtp03.uk.ibm.com (e06smtp03.uk.ibm.com [195.75.94.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 2uu17dr59r-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 05 Sep 2019 07:11:21 -0400 Received: from localhost by e06smtp03.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 5 Sep 2019 12:11:19 +0100 Received: from b06avi18878370.portsmouth.uk.ibm.com (9.149.26.194) by e06smtp03.uk.ibm.com (192.168.101.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Thu, 5 Sep 2019 12:11:16 +0100 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06avi18878370.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x85BBEi245416866 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 5 Sep 2019 11:11:14 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BCDA8A4051; Thu, 5 Sep 2019 11:11:14 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6D776A405B; Thu, 5 Sep 2019 11:11:14 +0000 (GMT) Received: from white.boeblingen.de.ibm.com (unknown [9.152.97.226]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 5 Sep 2019 11:11:14 +0000 (GMT) From: Ilya Leoshkevich To: gcc-patches@gcc.gnu.org Cc: richard.guenther@gmail.com, richard.sandiford@arm.com, segher@kernel.crashing.org, joseph@codesourcery.com, krebbel@linux.ibm.com, rdapp@linux.ibm.com, Ilya Leoshkevich Subject: [PATCH v3 5/9] S/390: Implement vcond expander for V1TI,V1TF Date: Thu, 05 Sep 2019 11:11:00 -0000 In-Reply-To: <20190905111019.8951-1-iii@linux.ibm.com> References: <20190905111019.8951-1-iii@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit x-cbid: 19090511-0012-0000-0000-00000347056D X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19090511-0013-0000-0000-000021815B44 Message-Id: <20190905111019.8951-6-iii@linux.ibm.com> X-IsSubscribed: yes X-SW-Source: 2019-09/txt/msg00275.txt.bz2 Currently gcc does not emit wf{c,k}* instructions when comparing long double values. Middle-end actually adds them in the first place, but then veclower pass replaces them with floating point register pair operations, because the corresponding expander is missing. gcc/ChangeLog: 2019-08-09 Ilya Leoshkevich PR target/77918 * config/s390/vector.md (vcondv1tiv1tf): New variant of vcond$a$b expander. --- gcc/config/s390/vector.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index d7a266c5605..ca5ec0dd3b0 100644 --- a/gcc/config/s390/vector.md +++ b/gcc/config/s390/vector.md @@ -649,6 +649,21 @@ DONE; }) +(define_expand "vcondv1tiv1tf" + [(set (match_operand:V1TI 0 "register_operand" "") + (if_then_else:V1TI + (match_operator 3 "vcond_comparison_operator" + [(match_operand:V1TF 4 "register_operand" "") + (match_operand:V1TF 5 "nonmemory_operand" "")]) + (match_operand:V1TI 1 "nonmemory_operand" "") + (match_operand:V1TI 2 "nonmemory_operand" "")))] + "TARGET_VXE" +{ + s390_expand_vcond (operands[0], operands[1], operands[2], + GET_CODE (operands[3]), operands[4], operands[5]); + DONE; +}) + (define_expand "vcondu" [(set (match_operand:V_HW 0 "register_operand" "") (if_then_else:V_HW -- 2.21.0