From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 2CC483857029 for ; Wed, 10 May 2023 09:15:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2CC483857029 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 538BC1063; Wed, 10 May 2023 02:16:39 -0700 (PDT) Received: from [10.57.70.118] (unknown [10.57.70.118]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0FBE43F5A1; Wed, 10 May 2023 02:15:53 -0700 (PDT) Message-ID: Date: Wed, 10 May 2023 10:15:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 3/3] Remove widen_plus/minus_expr tree codes Content-Language: en-US To: Richard Biener Cc: Richard Biener , Richard Sandiford , "gcc-patches@gcc.gnu.org" References: <51ce8969-3130-452e-092e-f9d91eff2dad@arm.com> From: "Andre Vieira (lists)" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,NICE_REPLY_A,SPF_HELO_NONE,SPF_NONE,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 List-Id: On 03/05/2023 13:29, Richard Biener wrote: > On Fri, 28 Apr 2023, Andre Vieira (lists) wrote: > >> This is a rebase of Joel's previous patch. >> >> This patch removes the old widen plus/minus tree codes which have been >> replaced by internal functions. > > I guess that's obvious then. I wonder what we do to internal > fns in debug stmts? Looks like we throw those away and do not > generate debug stmts from calls. See the comment above the removed lines in expand_debug_expr: /* Vector stuff. For most of the codes we don't have rtl codes. */ And it then just returns NULL for those expr's. So the behaviour there remains unchanged, not saying we couldn't do anything but I don > > Given you remove handling of the scalar WIDEN_PLUS/MINUS_EXPR > codes everywhere do we want to add checking code the scalar > IFNs do not appear in the IL? For at least some cases there > are corresponding functions handling internal functions that > you could have amended otherwise. I am making some changes to PATCH 2 of this series, in the new version I am adding some extra code to the gimple checks, one of which is to error if it comes a cross an IFN that decomposes to HILO as that should only occur as an intermediary representation of the vect pass. > > Richard. > >> gcc/ChangeLog: >> >> 2023-04-28 Andre Vieira >> Joel Hutton >> >> * doc/generic.texi: Remove old tree codes. >> * expr.cc (expand_expr_real_2): Remove old tree code cases. >> * gimple-pretty-print.cc (dump_binary_rhs): Likewise. >> * optabs-tree.cc (optab_for_tree_code): Likewise. >> (supportable_half_widening_operation): Likewise. >> * tree-cfg.cc (verify_gimple_assign_binary): Likewise. >> * tree-inline.cc (estimate_operator_cost): Likewise. >> (op_symbol_code): Likewise. >> * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise. >> (vect_analyze_data_ref_accesses): Likewise. >> * tree-vect-generic.cc (expand_vector_operations_1): Likewise. >> * cfgexpand.cc (expand_debug_expr): Likewise. >> * tree-vect-stmts.cc (vectorizable_conversion): Likewise. >> (supportable_widening_operation): Likewise. >> * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard): >> Likewise. >> * tree-vect-patterns.cc (vect_widened_op_tree): Refactor to replace >> usage in vect_recog_sad_pattern. >> (vect_recog_sad_pattern): Replace tree code widening pattern with >> internal function. >> (vect_recog_average_pattern): Likewise. >> * tree-pretty-print.cc (dump_generic_node): Remove tree code >> definition. >> * tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR, >> VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR, >> VEC_WIDEN_MINUS_LO_EXPR): Likewise >> >