From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5D9263861852; Thu, 15 Feb 2024 08:34:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5D9263861852 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1707986098; bh=7cEr3YugvO8QAx8dVg9rtoNyeb2WItyTNArrDCp6prM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=YsR5bykBLdWGQtPnP8R/Eq4mPfjoHlRSlouI49gzDb/K4XnmPG3bMsAU+7mQlYEQB F1xYy16tGnu4EN2Wy/C2h3FD+fPXFxYhy7llB47NdnQklo6/AF5DlQ+Vs+vrtsBfj6 cURRQ/6MZ/ubfQQ8KGRM8wGomOGKLbM1+ciiHPyo= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/111156] [14 Regression] aarch64 aarch64/sve/mask_struct_store_4.c failures Date: Thu, 15 Feb 2024 08:34:35 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: testsuite-fail, wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D111156 --- Comment #13 from Richard Biener --- I didn't add STMT_VINFO_SLP_VECT_ONLY, I'm quite sure we can now do both SL= P of masked loads and stores, so yes, STMT_VINFO_SLP_VECT_ONLY (when we formed a DR group of stmts we cannot combine without SLP as the masks are not equa= l) should be set for both loads and stores. The can_group_stmts_p checks as present seem correct here (but the dump should not say "Load" but maybe "Access") So it looks like the issue is with "late" deciding we can't actually do the masked SLP store (why?) and the odd "vect_dissolve_slp_only_groups" and then somehow botching strided store code-gen which likely doesn't expect masks or should have disabled fully masking? I'll note that we don't support single element interleaving for stores, so vect_analyze_group_acces= s_1 would have falled back to STMT_VINFO_STRIDED_P. But as said, maybe that somehow misses to disable loop masking then when vect_analyze_loop_operatio= ns? So what's the testcase comment#9 talks about?=