From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id BE2BF38582BF for ; Mon, 8 Aug 2022 12:13:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BE2BF38582BF Received: by mail-ej1-x631.google.com with SMTP id y13so16138242ejp.13 for ; Mon, 08 Aug 2022 05:13:03 -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=mxhBLodDUgViSgzkKe2eMrgnRSfeTTv+Qr0SIPyuwDY=; b=rZuTkSUXXajv5xcZofNAL2jnVCmoRpCI77FBIM72ngsApm7xCX9SWX/cpK7KNH8ABk 06Mk6DTNrpTngaaomUf9mf2AKnrBytEv2lCQ9qCOuMT+7ORoxgc+Dln8eqTPEeUU4zBl /Upihhdt2oKWOZ4a8+Hk3kjFLjzeX/0Z5QXA9xWG8S0PMp+e6e5WpUaVaNkY0vpq0iA3 ShnN4/43NbGph/NYMrIr2vGWu1Odg09R7QQDzA7np2WDAZm1gWOxQNNl4rIaRw+nXZpg DndB25Vb07lwkQ+ttSRLiEB8UwaNVb8aWySy1w+0sDde+Fqd8Tdpno1YeEb5UffyZ+BT 3svA== X-Gm-Message-State: ACgBeo09FFIo+ihZSB1+ylM2lR3QKyTNKRjaKxgTbUsF0TQQwhtmBqQC KrUlCh1AiZm0B0OY25dO5oh2v3Tf+/4UofrUFN8= X-Google-Smtp-Source: AA6agR45QwSP5pp61PEhgmX3WTxix5s2i868Wu1BhI8i6kcwsRMfIHBmoX5aDwbNFQMgIsb6b2M2FEW8kAzycr17rhs= X-Received: by 2002:a17:907:9712:b0:731:67db:1b48 with SMTP id jg18-20020a170907971200b0073167db1b48mr2303226ejc.754.1659960782425; Mon, 08 Aug 2022 05:13:02 -0700 (PDT) MIME-Version: 1.0 References: <95d2de77-5b68-6d0b-ac99-ac1ca28835e2@arm.com> <3f90f079-8c12-2547-c925-a28779fdb267@arm.com> In-Reply-To: <3f90f079-8c12-2547-c925-a28779fdb267@arm.com> From: Richard Biener Date: Mon, 8 Aug 2022 14:12:50 +0200 Message-ID: Subject: Re: [PATCH 4/4][RFC] VLA Constructor To: "Andre Vieira (lists)" Cc: GCC Patches , Richard Sandiford Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.2 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, T_SCC_BODY_TEXT_LINE 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2022 12:13:06 -0000 On Fri, Aug 5, 2022 at 2:59 PM Andre Vieira (lists) via Gcc-patches wrote: > > This isn't really a 'PATCH' yet, it's something I was working on but had > to put on hold. Feel free to re-use any bits or trash all of it if you'd > like. @@ -10264,6 +10264,44 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, case VEC_PERM_EXPR: { + if (TREE_CODE (treeop2) == VECTOR_CST + && targetm.vectorize.vla_constructor) + { + tree ctor0, ctor1; + if (TREE_CODE (treeop0) == SSA_NAME + && is_gimple_assign (SSA_NAME_DEF_STMT (treeop0))) + ctor0 = gimple_assign_rhs1 (SSA_NAME_DEF_STMT (treeop0)); + else + ctor0 = treeop0; + if (TREE_CODE (treeop1) == SSA_NAME + && is_gimple_assign (SSA_NAME_DEF_STMT (treeop1))) + ctor1 = gimple_assign_rhs1 (SSA_NAME_DEF_STMT (treeop1)); just to say - you can't lookup things like this, you have to go through the TER machinery, otherwise the expansions for the CTOR elements might be clobbered already. That means to be fully effective doing this during RTL expansion is likely limited.