From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2368 invoked by alias); 15 May 2019 12:16:10 -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 2358 invoked by uid 89); 15 May 2019 12:16:10 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*f:sk:CAFULd4 X-HELO: mail-lj1-f175.google.com Received: from mail-lj1-f175.google.com (HELO mail-lj1-f175.google.com) (209.85.208.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 May 2019 12:16:08 +0000 Received: by mail-lj1-f175.google.com with SMTP id h19so2305910ljj.4 for ; Wed, 15 May 2019 05:16:08 -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:content-transfer-encoding; bh=oac7BVzAVw2SNuoEZki36+2OirFn5lrTwolBSZTLgsU=; b=J1IiD0fhm72VxoczKJ38cEn+ZN84gviyZ0RguZUxQiukt+VEfohnI+Gg1Bw7uUdnAs Mj9RlNVngK0W8RKeTPYAGIHj2/MEPp0j3QeZLmZVmQJ1i4FT+gAirBRcHdW5W8AZD1GZ gAxFDXAN3qLnqiWlIpcN6w8IGsZgDeDwPeJ6jUhiABcRECCszhuNQc1vILRTqKGp5CUm r4E7Ou54oHa0vEa0cNPlhYnN4hX63ZkphIKRqBFNdRiZvkxvMh/OZO3hejEjefrPU4SM YBpok7N/WHob5KVyIiPZSi59R8tTqY3L/2o6BbHQERi0rff/SnfoIVO3x7ekrqQ3SwVQ 2gMA== MIME-Version: 1.0 References: In-Reply-To: From: Richard Biener Date: Wed, 15 May 2019 12:16:00 -0000 Message-ID: Subject: Re: [PATCH, i386]: Macroize DIVMOD patterns To: Uros Bizjak Cc: "gcc-patches@gcc.gnu.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00812.txt.bz2 On Tue, May 14, 2019 at 6:23 PM Uros Bizjak wrote: > > Recent work by Richard Sandiford [1] enabled the possibility to > macroize DIVMOD patterns in i386.md. > > 2019-05-14 Uro=C5=A1 Bizjak > > * config/i386/i386.md (any_div): New code iterator. > (paired_mod): New code attribute. > (sgnprefix): Handle DIV and UDIV RTXes. > (u): Ditto. > (divmod4): Macroize expander from divmod4 > and udivmod4 patterns using any_div code iterator. > (divmod splitters): Macroize splitters using any_div code iterator. > (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition. > (*udivmodsi4_pow2_zext_2): Ditto. > (*divmod4_noext): Macroize insn from *divmod4_noext > and *udivmod4_noext patterns using any_div code iterator. > (*divmod4_noext_zext_1): Macroize insn from > *divmod4_noext_zext_1 and *udivmod4_noext_zext_1 > patterns using any_div code iterator. > (*divmod4_noext_zext_2): Macroize insn from > *divmod4_noext_zext_2 and *udivmod4_noext_zext_2 > patterns using any_div code iterator. > (divmodhiqi3): Macroize insn from divmodhiqi3 and > udivmodhiqi3 patterns using any_extend code iterator. > > The patch also reorders DIVMOD patterns a bit. > > Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. > > Committed to mainline SVN. I see FAIL: gcc.target/i386/udivmod-1.c execution test on x86_64. > [1] https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00560.html > > Uros.