From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 63329 invoked by alias); 6 Nov 2019 09:44:14 -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 63317 invoked by uid 89); 6 Nov 2019 09:44:14 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*i:sk:mpta79a, H*f:sk:mpta79a X-HELO: mail-lj1-f195.google.com Received: from mail-lj1-f195.google.com (HELO mail-lj1-f195.google.com) (209.85.208.195) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 06 Nov 2019 09:44:12 +0000 Received: by mail-lj1-f195.google.com with SMTP id k15so13179941lja.3 for ; Wed, 06 Nov 2019 01:44:12 -0800 (PST) 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=+2GDWDkKnghU84QbyFJiObepMXBK13l+KI699sNjT/U=; b=XNL2JlO9T4LE7YTSv8hQm1V7vxTnyCqy45NdugQfRS9RnSd+Wncwon/kSyn+u8WJGR 5gJtg9Bz2W80pQBfOBaloZe3BTGgJpFbLQZxp9wMvCb4LRb3org9r+KlAOE1kfNF9LyR 96BE8+csLYmx22S1/eO8w+y+74MTL2fFIBiqdsJaN/+hvyE/2KO45kcfn9G1sMDy5YfU KS6y76sThzbtmSbmyZGVduwy/AcZJiHsPqjRr3QX++vPaNeN0eRlASJPzEtAXtYIUC/i 13uapuQpxiWEWCyWGoWeI8XLu2SunmrDEhJ6WdCtwUKoQWg1bi/lHxx+WUj4qu/NUFAF MCLA== MIME-Version: 1.0 References: In-Reply-To: From: Richard Biener Date: Wed, 06 Nov 2019 09:44:00 -0000 Message-ID: Subject: Re: [10a/n] Require equal type sizes for vectorised calls To: Richard Sandiford Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg00366.txt.bz2 On Tue, Nov 5, 2019 at 9:10 PM Richard Sandiford wrote: > > As explained in the comment, vectorizable_call needs more work to > support mixtures of sizes. This avoids testsuite fallout for > later SVE patches. > > Was originally going to be later in the series, but applying it > before 11/n seems safer. As before each patch tested individually > on aarch64-linux-gnu and the series as a whole on x86_64-linux-gnu. OK. > > 2019-11-04 Richard Sandiford > > gcc/ > * tree-vect-stmts.c (vectorizable_call): Require the types > to have the same size. > > Index: gcc/tree-vect-stmts.c > =================================================================== > --- gcc/tree-vect-stmts.c 2019-11-05 10:38:50.718047381 +0000 > +++ gcc/tree-vect-stmts.c 2019-11-05 10:38:55.542013228 +0000 > @@ -3317,6 +3317,19 @@ vectorizable_call (stmt_vec_info stmt_in > > return false; > } > + /* FORNOW: we don't yet support mixtures of vector sizes for calls, > + just mixtures of nunits. E.g. DI->SI versions of __builtin_ctz* > + are traditionally vectorized as two VnDI->VnDI IFN_CTZs followed > + by a pack of the two vectors into an SI vector. We would need > + separate code to handle direct VnDI->VnSI IFN_CTZs. */ > + if (TYPE_SIZE (vectype_in) != TYPE_SIZE (vectype_out)) > + { > + if (dump_enabled_p ()) > + dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, > + "mismatched vector sizes %T and %T\n", > + vectype_in, vectype_out); > + return false; > + } > > /* FORNOW */ > nunits_in = TYPE_VECTOR_SUBPARTS (vectype_in);