From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26425 invoked by alias); 22 Dec 2019 17:24:56 -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 26417 invoked by uid 89); 22 Dec 2019 17:24:55 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=ultimately, vsxmd, vsx.md, UD:vsx.md 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; Sun, 22 Dec 2019 17:24:54 +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 xBMHOpe8027055; Sun, 22 Dec 2019 11:24:52 -0600 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id xBMHOpg5027051; Sun, 22 Dec 2019 11:24:51 -0600 Date: Sun, 22 Dec 2019 17:49:00 -0000 From: Segher Boessenkool To: Michael Meissner , gcc-patches@gcc.gnu.org, David Edelsohn Subject: Re: [PATCH] V11 patch #3 of 15, Use 'Q' constraint for variable vector extract from memory Message-ID: <20191222172451.GC4505@gate.crashing.org> References: <20191220231507.GA18386@ibm-toto.the-meissners.org> <20191220234728.GC28993@ibm-toto.the-meissners.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191220234728.GC28993@ibm-toto.the-meissners.org> User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2019-12/txt/msg01535.txt.bz2 Hi! On Fri, Dec 20, 2019 at 06:47:28PM -0500, Michael Meissner wrote: > Then I realized that eventaully we will want to generate an X-FORM (register + > register) address, and it was just simpler to use the 'Q' constraint, and have > the register allocator put the address into a register. Yep, good call. > * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): > Use 'Q' for memory constraints because we need to do an X-FORM > load with the variable index. > (vsx_extract_v4sf_var): Use 'Q' for memory constraints because we > need to do an X-FORM load with the variable index. This comment is a headscratcher -- but you shouldn't say "why" in changelogs at all, so that is an easy fix ;-) > (vsx_extract__var, VSX_EXTRACT_I iterator):Use 'Q' for (missing space) > memory constraints because we need to do an X-FORM load with the > variable index. > (vsx_extract__mode_var): Use 'Q' for memory > constraints because we need to do an X-FORM load with the variable > index. (and more) > -;; Variable V2DI/V2DF extract > +;; Variable V2DI/V2DF extract. Use 'Q' for the memory because we will > +;; ultimately have to convert the address into base + index. Maybe just don't write anything at all, since it is hard to explain in a few words? It is clear that "Q" is not a usual constraint, anyway :-) Okay for trunk like that. Thanks! Segher