From patchwork Thu Dec 14 15:55:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 178786 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:3b04:b0:fb:cd0c:d3e with SMTP id c4csp8645266dys; Thu, 14 Dec 2023 07:56:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IFRAXi+rF25amW0x0gioeTujj0CDxaaO9BZpmQ26FzcWYo+8xdw8zz+t+ol/RdRjb+6NR4R X-Received: by 2002:a9d:6187:0:b0:6d9:e32e:fb0d with SMTP id g7-20020a9d6187000000b006d9e32efb0dmr9544154otk.20.1702569366842; Thu, 14 Dec 2023 07:56:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1702569366; cv=pass; d=google.com; s=arc-20160816; b=PG/RSTQSW9Ah5huaj+sALR+4XpL6JroGlwjvJW8vMlUeEJ25s3fBxc3VxKCCLsQ2rV hc6E66ADENfVULyq8fh3LIDkudOuyb52vmqeQ/UqokFOcfzZVmt9t2ZdRQNgvCD2/f6Y VkP5o/CXSE3vkN6bu8BoL7NXZB+cLaxe1/8c7lCVb8VjbbkWPpCq4+HT7JVoCFothJhg Z/7/GIyS2+ICjhb+rdHaHyoDDsgF9CJ9ozeHu5Qt5tfc10Gq5y33BxToulG0GyjTaaiN 3jP/f6NQzdICPubtdbQKNBs8TgspewrOu3l7Vkn3htaMFtDnijTCkcYUsx4Uy7Y389WB BjNw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:message-id:mime-version:subject :to:from:date:dkim-signature:dkim-signature:dkim-signature :dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=wpls0PhPUNUwvszAA1od4U4FKftaFrbJrfHZCO6wfNc=; fh=hPrbWPhweUx4V0GV9uXJqbyAzg2ABmTz7kczrAQqMmM=; b=DVpHL6ZNCsT3M6cQN/rl28ObwEmWGJimIE6QEZ2ckyClVmzXOGjNJZ1Nl+YX/nGwTJ khr+1ozsOiBXLQuc5a5p4tAl6PO8uTwhyF4dAvd4rKZ6fzWgerBlHf7v3KTCNuroPbuC 7Hcrtadjim8V3S3weSOBgiKXZ5relqQq27juLvCHREywlvwyW7Xs8p7hDLfK3PFbbyyx xmOD+Ln7GK9+T4m+GzqAo1cNsVgkxbA/kCCToyWjcAvttvhm8GS4wk++6XATOE/w6icx rTTOE7XSY3gd4tG011JGb1uc7ILP5k02BsfD2ctoJgEuLgembMBuIsxo/eoHxvybncN0 5T4w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=faoXIzzz; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=faoXIzzz; dkim=neutral (no key) header.i=@suse.de; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id g6-20020ac85d46000000b00425b7e373bbsi13127716qtx.576.2023.12.14.07.56.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Dec 2023 07:56:06 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=faoXIzzz; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=faoXIzzz; dkim=neutral (no key) header.i=@suse.de; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 74FF83861891 for ; Thu, 14 Dec 2023 15:56:06 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org 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 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785273376467816973 X-GMAIL-MSGID: 1785273376467816973 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); }