From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by sourceware.org (Postfix) with ESMTPS id 9AC6F3857BBA for ; Tue, 2 Aug 2022 15:57:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9AC6F3857BBA Received: by mail-pl1-x630.google.com with SMTP id v18so13832313plo.8 for ; Tue, 02 Aug 2022 08:57:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SF+M41/ACPKG3VwuayvgLTEyCeZzJL6mlJNT+STXn6U=; b=oV68BzB9R8sFHH0gnh83E6ABmiXsDeXsWMfHCxqzRJ7pfKYZt3QJfid91MH0NeuPY+ vBFN1d9Q4t1dO6DVpdiw62ueBmLJAhVoWH2t6GbBm2gZHxChJ/Fu/XM6YXwTVEuykeIj IFiPeXukSrs3JPBpGzs1N2/weasbMwaJDeSjLhd/d7aRuj7jgRIAY17QaX1ZGA/CpAby yCZvFUHAOOpT1d5d6Ll9mdrWh5N/SeC/B1kVaM/EZt8wQ+QVMXZ+mNrNvL2b2sPb8/cy VHElCZIU1hyLjcZieFy2Wa8UtOaq6ovnjxsmfDPUMnrWm3QNfir5RPOf+EJE2OWViO2v 9HdA== X-Gm-Message-State: ACgBeo1UB29Oy2aCQ8yuKGKYoXhWcCAKMUDZpf2rGxGHNXAusksG+8JD aU92HQ0/o/aM5J9VCmT3iEDp5w62Drb3EqYrp3Q= X-Google-Smtp-Source: AA6agR4V609d7CSIO48VR/ranJqG/YohYw+KLFFqUfDbRFNug62x9k6FFHYPePxT40gQAQqZ0Hsay2U9uX0C0BO/dJo= X-Received: by 2002:a17:902:a502:b0:15e:c251:b769 with SMTP id s2-20020a170902a50200b0015ec251b769mr22473747plq.115.1659455843568; Tue, 02 Aug 2022 08:57:23 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "H.J. Lu" Date: Tue, 2 Aug 2022 08:56:47 -0700 Message-ID: Subject: Re: [PATCH] x86: improve/shorten vector zeroing-idiom optimization conditional To: Jan Beulich Cc: Binutils Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3019.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Aug 2022 15:57:25 -0000 On Tue, Aug 2, 2022 at 8:20 AM Jan Beulich wrote: > > - Drop the rounding type check: We're past template matching, and none > of the involved insns support embedded rounding. > - Drop the extension opcode check: None of the involved opcodes have > variants with it being other than None. > - Instead check opcode space, even if just to be on the safe side going > forward. > - Reduce the number of comparisons by folding two groups. > > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -4329,24 +4329,19 @@ optimize_encoding (void) > && !i.types[2].bitfield.xmmword > && (i.tm.opcode_modifier.vex > || ((!i.mask.reg || i.mask.zeroing) > - && i.rounding.type == rc_none > && is_evex_encoding (&i.tm) > && (i.vec_encoding != vex_encoding_evex > || cpu_arch_isa_flags.bitfield.cpuavx512vl > || i.tm.cpu_flags.bitfield.cpuavx512vl > || (i.tm.operand_types[2].bitfield.zmmword > && i.types[2].bitfield.ymmword)))) > - && ((i.tm.base_opcode == 0x55 > - || i.tm.base_opcode == 0x57 > - || i.tm.base_opcode == 0xdf > - || i.tm.base_opcode == 0xef > - || i.tm.base_opcode == 0xf8 > - || i.tm.base_opcode == 0xf9 > - || i.tm.base_opcode == 0xfa > - || i.tm.base_opcode == 0xfb > - || i.tm.base_opcode == 0x42 > - || i.tm.base_opcode == 0x47) > - && i.tm.extension_opcode == None)) > + && i.tm.opcode_modifier.opcodespace == SPACE_0F > + && ((i.tm.base_opcode | 2) == 0x57 > + || i.tm.base_opcode == 0xdf > + || i.tm.base_opcode == 0xef > + || (i.tm.base_opcode | 3) == 0xfb > + || i.tm.base_opcode == 0x42 > + || i.tm.base_opcode == 0x47)) > { > /* Optimize: -O1: > VOP, one of vandnps, vandnpd, vxorps, vxorpd, vpsubb, vpsubd, OK. Thanks. -- H.J.