From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 3AC423858D20 for ; Thu, 14 Dec 2023 15:55:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3AC423858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3AC423858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702569345; cv=none; b=d9q9k1G6zvNjhZO/+8J0NaDQ64X2LRa9F28lMixHl7Lj8oDdh8H5RVFIRqMyhuE9P5/cmFgTYB3GlazfmI4FmtiruPngIP4Nr5FE9+pCsjAfk6rM4vdnaXWjmeYDyqgJIx9L5Dcj1M8RWwmc82pFvzNRS+Xz4ElIYX7BCIKBO+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702569345; c=relaxed/simple; bh=fqM5QOmzDFkQEL7Oa4/BhRpe1vhItrU302/NkbnOlIY=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date: From:To:Subject:MIME-Version:Message-Id; b=W691dNpVU4lKy3sWz3ZgRVPDVCXT856v/zywDd1AoPihDlcj5udt0M6yFc0Keas/gB8ggz/PCRGVpnYALsfPw0lZTqf0Rlz2By5i1S0813lUWtJPHL7ypvE+F95m9dAsQAfPASHnfv32k6C1fNz/YDBmNWPQ/fp3p++beO9/xVg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 24F6C220D6 for ; Thu, 14 Dec 2023 15:55:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1702569343; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=wpls0PhPUNUwvszAA1od4U4FKftaFrbJrfHZCO6wfNc=; b=faoXIzzzxWi9YPipLnniWqMv8wOzmuJMZrJTX3EMmY8RLBdos/2omTfG+6my5Wlgi3sgWQ z+kHHAUa1BJRa+kE2KZEBe7RS3aA41VWRcYlFzKMZjypnQoqRonj+ar1TaN923r6EXJCpK IhHBAxgKcwhYGEJs7o/CcHnYVGMEUaE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1702569343; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=wpls0PhPUNUwvszAA1od4U4FKftaFrbJrfHZCO6wfNc=; b=lDPXY/evp5Sb34ANKNCMIF56etNVHy4htY6huhbIi8MK5tSh5RdI5rOsQu8s9odbMjr/Ik 1Htq4alnQj7VeACQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1702569343; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=wpls0PhPUNUwvszAA1od4U4FKftaFrbJrfHZCO6wfNc=; b=faoXIzzzxWi9YPipLnniWqMv8wOzmuJMZrJTX3EMmY8RLBdos/2omTfG+6my5Wlgi3sgWQ z+kHHAUa1BJRa+kE2KZEBe7RS3aA41VWRcYlFzKMZjypnQoqRonj+ar1TaN923r6EXJCpK IhHBAxgKcwhYGEJs7o/CcHnYVGMEUaE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1702569343; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=wpls0PhPUNUwvszAA1od4U4FKftaFrbJrfHZCO6wfNc=; b=lDPXY/evp5Sb34ANKNCMIF56etNVHy4htY6huhbIi8MK5tSh5RdI5rOsQu8s9odbMjr/Ik 1Htq4alnQj7VeACQ== Received: from imap2.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 0B013138F2 for ; Thu, 14 Dec 2023 15:55:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap2.dmz-prg2.suse.org with ESMTPSA id Z/oJAX8le2UaMgAAn2gu4w (envelope-from ) for ; Thu, 14 Dec 2023 15:55:43 +0000 Date: Thu, 14 Dec 2023 16:55:42 +0100 (CET) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] tree-optimization/113018 - ICE with BB reduction vectorization MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Message-Id: <20231214155543.0B013138F2@imap2.dmz-prg2.suse.org> X-Spam-Level: X-Spam-Level: Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=faoXIzzz; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="lDPXY/ev"; dmarc=pass (policy=none) header.from=suse.de; spf=softfail (smtp-out1.suse.de: 2a07:de40:b281:104:10:150:64:98 is neither permitted nor denied by domain of rguenther@suse.de) smtp.mailfrom=rguenther@suse.de X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-15.45 / 50.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:98:from]; TO_DN_NONE(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; DMARC_POLICY_ALLOW(0.00)[suse.de,none]; NEURAL_HAM_SHORT(-0.20)[-1.000]; DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; BAYES_HAM(-2.94)[99.76%]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[gcc-patches@gcc.gnu.org]; DWL_DNSWL_HI(-3.50)[suse.de:dkim]; RCPT_COUNT_ONE(0.00)[1]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; WHITELIST_DMARC(-7.00)[suse.de:D:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -15.45 X-Rspamd-Queue-Id: 24F6C220D6 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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 List-Id: When BB reduction vectorization picks up a chain with an ASM def in it and that's inside the vectorized region we fail to get its LHS. Instead of trying to get the correct def the following avoids vectorizing such def and instead keeps it as def to add in the epilog. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/113018 * tree-vect-slp.cc (vect_slp_check_for_roots): Only start SLP discovery from stmts with a LHS. --- gcc/tree-vect-slp.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index f8a168caa60..a82fca45161 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -7419,7 +7419,12 @@ vect_slp_check_for_roots (bb_vec_info bb_vinfo) invalid = true; break; } - if (chain[i].dt != vect_internal_def) + if (chain[i].dt != vect_internal_def + /* Avoid stmts where the def is not the LHS, like + ASMs. */ + || (gimple_get_lhs (bb_vinfo->lookup_def + (chain[i].op)->stmt) + != chain[i].op)) remain_cnt++; } if (!invalid && chain.length () - remain_cnt > 1) @@ -7431,8 +7436,11 @@ vect_slp_check_for_roots (bb_vec_info bb_vinfo) remain.create (remain_cnt); for (unsigned i = 0; i < chain.length (); ++i) { - if (chain[i].dt == vect_internal_def) - stmts.quick_push (bb_vinfo->lookup_def (chain[i].op)); + stmt_vec_info stmt_info; + if (chain[i].dt == vect_internal_def + && ((stmt_info = bb_vinfo->lookup_def (chain[i].op)), + gimple_get_lhs (stmt_info->stmt) == chain[i].op)) + stmts.quick_push (stmt_info); else remain.quick_push (chain[i].op); } -- 2.35.3