From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3336 invoked by alias); 6 Sep 2019 10:34:33 -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 3325 invoked by uid 89); 6 Sep 2019 10:34:33 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE autolearn=no version=3.3.1 spammy= X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Sep 2019 10:34:32 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x86AYOns022442; Fri, 6 Sep 2019 05:34:24 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id x86AYNgi022441; Fri, 6 Sep 2019 05:34:23 -0500 Date: Fri, 06 Sep 2019 10:34:00 -0000 From: Segher Boessenkool To: Ilya Leoshkevich Cc: gcc-patches@gcc.gnu.org, richard.guenther@gmail.com, richard.sandiford@arm.com, joseph@codesourcery.com, krebbel@linux.ibm.com, rdapp@linux.ibm.com Subject: Re: [PATCH v3 4/9] S/390: Do not use signaling vector comparisons on z13 Message-ID: <20190906103423.GW9749@gate.crashing.org> References: <20190905111019.8951-1-iii@linux.ibm.com> <20190905111019.8951-5-iii@linux.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190905111019.8951-5-iii@linux.ibm.com> User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2019-09/txt/msg00358.txt.bz2 Hi Ilya, On Thu, Sep 05, 2019 at 01:10:14PM +0200, Ilya Leoshkevich wrote: > z13 supports only non-signaling vector comparisons. This means we > cannot vectorize LT, LE, GT, GE and LTGT when compiling for z13. Notify > middle-end about this using more restrictive operator predicate in > vcond. > +(define_predicate "vcond_comparison_operator" > + (match_operand 0 "comparison_operator") > +{ > + if (!HONOR_NANS (GET_MODE (XEXP (op, 0))) > + && !HONOR_NANS (GET_MODE (XEXP (op, 1)))) > + return true; > + switch (GET_CODE (op)) > + { > + case LE: > + case LT: > + case GE: > + case GT: > + case LTGT: > + /* Signaling vector comparisons are supported only on z14+. */ > + return TARGET_Z14; > + default: > + return true; > + } > +}) Should you handle -fsignaling-nans here as well? Segher