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 434D83858D20; Fri, 14 Apr 2023 08:43:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 434D83858D20 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 3FF282F4; Fri, 14 Apr 2023 01:44:15 -0700 (PDT) Received: from [10.57.68.11] (unknown [10.57.68.11]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DD6E93F6C4; Fri, 14 Apr 2023 01:43:29 -0700 (PDT) Message-ID: Date: Fri, 14 Apr 2023 09:43:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [r13-7135 Regression] FAIL: gcc.dg/vect/vect-simd-clone-18f.c scan-tree-dump-times vect "[\\n\\r] [^\\n]* = foo\\.simdclone" 2 on Linux/x86_64 Content-Language: en-US To: Richard Biener Cc: Andrew Stubbs , "gcc-regression@gcc.gnu.org" , "gcc-patches@gcc.gnu.org" , "haochen.jiang@intel.com" References: <202304130148.33D1mmns1987590@shliclel4214.sh.intel.com> <341dd608-a512-3c74-303d-1942876a3850@arm.com> From: "Andre Vieira (lists)" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_NUMSUBJECT,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: Resending this to everyone (sorry for the double send Richard). On 14/04/2023 09:15, Andre Vieira (lists) wrote: > > > On 14/04/2023 07:55, Richard Biener wrote: >> On Thu, Apr 13, 2023 at 4:25 PM Andre Vieira (lists) >> wrote: >>> >>> >>> >>> On 13/04/2023 15:00, Richard Biener wrote: >>>> On Thu, Apr 13, 2023 at 3:00 PM Andre Vieira (lists) via Gcc-patches >>>> wrote: >>>>> >>>>> >>>>> >>> >>> But that's not it, I've been looking at it, and there is code in place >>> that does what I expected which is defer the choice of vectype for simd >>> clones until vectorizable_simd_clone_call, unfortunately it has a >>> mistaken assumption that simdclones don't return :/ >> >> I think that's not it - when the SIMD clone returns a vector we have to >> determine the vector type in this function. We cannot defer this. > > What's 'this function' here, do you mean we have to determine the > vectype in 'vect_get_vector_types_for_stmt' & > 'vect_determine_vf_for_stmt' ? Because at that time we don't yet know > what clone we will be using, this choice is done inside > vectorizable_simd_clone_call. In fact, to choose the simd clone, we need > to know the vf as that has to be a multiple of the chosen clone's > simdlen. So we simply can't use the simdclone's types (as that depends > on the simdlen) to choose the vf because the choice of simdlend depends > on the vf. And there was already code in place to handle this, > unfortunately that code was wrong and had the wrong assumption that > simdclones didn't return (probably was true at some point and bitrotted). > >> >>> see vect_get_vector_types_for_stmt: >>> ... >>> if (gimple_get_lhs (stmt) == NULL_TREE >>> /* MASK_STORE has no lhs, but is ok. */ >>> && !gimple_call_internal_p (stmt, IFN_MASK_STORE)) >>> { >>> if (is_a (stmt)) >>> { >>> /* Ignore calls with no lhs. These must be calls to >>> #pragma omp simd functions, and what vectorization factor >>> it really needs can't be determined until >>> vectorizable_simd_clone_call. */ >>> if (dump_enabled_p ()) >>> dump_printf_loc (MSG_NOTE, vect_location, >>> "defer to SIMD clone analysis.\n"); >>> return opt_result::success (); >>> } >>> >>> return opt_result::failure_at (stmt, >>> "not vectorized: irregular >>> stmt.%G", stmt); >>> } >>> ... >>> >>> I'm working on a patch. >>>> >>>>> Kind Regards, >>>>> Andre