From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78195 invoked by alias); 5 Aug 2019 13:09:43 -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 77700 invoked by uid 89); 5 Aug 2019 13:09:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-io1-f50.google.com Received: from mail-io1-f50.google.com (HELO mail-io1-f50.google.com) (209.85.166.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Aug 2019 13:09:42 +0000 Received: by mail-io1-f50.google.com with SMTP id j5so163018462ioj.8 for ; Mon, 05 Aug 2019 06:09:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=RWGVWf1CydMDTwIOoTbhWW/5CKAW3Y1z0Ttl2YEWzpo=; b=NLvKwXIGeQ19QK25NgUyoi1n9V3zjb2XgIn1EYhqgAaLq1VkXGrowgrOCr3TcZNMJg +OzFaXfijwnAz9DrI92VWjVBc9PWPZwLQVFNe7hHI5BseffzgHeGv3gTwF+g6H6px8xx 8nu94wwo4yms9vaLxY8QAY29fgx4DZJOPIz/+i6b5w7IpA59cxT6emzv6T2tJbdv0C4X gkafsRCj2l1+R9I01l69J7RfyF9zkXDvSn7W+B5buuuI3H58zntuu6hDHQQGPzJGmx+5 fj0FvskxjIoA0XkIskn4Qx/8fxJAprgHvdn1EOp8A4fgHU4RqevieVNQp14HMEgqGlfA 0q8g== MIME-Version: 1.0 References: <20190805125358.GR2726@tucnak> In-Reply-To: From: Uros Bizjak Date: Mon, 05 Aug 2019 13:09:00 -0000 Message-ID: Subject: Re: [PATCH][RFC][x86] Fix PR91154, add SImode smax, allow SImode add in SSE regs To: Richard Biener Cc: Jakub Jelinek , "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" X-SW-Source: 2019-08/txt/msg00273.txt.bz2 On Mon, Aug 5, 2019 at 3:04 PM Richard Biener wrote: > > On Mon, 5 Aug 2019, Uros Bizjak wrote: > > > On Mon, Aug 5, 2019 at 2:54 PM Jakub Jelinek wrote: > > > > > > On Mon, Aug 05, 2019 at 02:51:01PM +0200, Uros Bizjak wrote: > > > > > (define_mode_iterator MAXMIN_IMODE [SI "TARGET_SSE4_1"] [DI "TARGET_AVX512F"]) > > > > > > > > > > and then we need to split DImode for 32bits, too. > > > > > > > > For now, please add "TARGET_64BIT && TARGET_AVX512F" for DImode > > > > condition, I'll provide _doubleword splitter later. > > > > > > Shouldn't that be TARGET_AVX512VL instead? Or does the insn use %g0 etc. > > > to force use of %zmmN? > > > > It generates V4SI mode, so - yes, AVX512VL. > > case SMAX: > case SMIN: > case UMAX: > case UMIN: > if ((mode == DImode && (!TARGET_64BIT || !TARGET_AVX512VL)) > || (mode == SImode && !TARGET_SSE4_1)) > return false; > > so there's no way to use AVX512VL for 32bit? There is a way, but on 32bit targets, we need to split DImode operation to a sequence of SImode operations for unconverted pattern. This is of course doable, but somehow more complex than simply emitting a DImode compare + DImode cmove, which is what current splitter does. So, a follow-up task. Uros.