From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 572EB3882100; Fri, 14 Jun 2024 09:31:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 572EB3882100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1718357486; bh=lR4RyCVUuZ3ShYaDTkiAK3cvQQ2jV78buGU815jRCWc=; h=From:To:Subject:Date:From; b=bErQG4m+hS16ujlY7Vhw99AHve1mTOvqmioUDrE2Rp76iHx/7JwOpR94+wyELp8nL Z5UF2H2FRF12+K6kVJOirA6puBEQo6Qz8lX3FX83JEqRQMkvKSCrdRT8kAl40qwENB lff+hCNnBwJe7eFFiJ05yc/yU57sKVRm2Ix5TruI= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/115487] New: -march=cascadelake causes spilling Date: Fri, 14 Jun 2024 09:31:25 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 15.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: 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=3D115487 Bug ID: 115487 Summary: -march=3Dcascadelake causes spilling Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- When looking at the report of gcc.target/i386/vect-strided-3.c FAILing with -march=3Dcascadelake I arrived at using -mno-sse4 instead of just -mno-avx to avoid pextrq from being used instead of movhps. But then adding -m32 does movq %xmm3, 8(%esp) movd 12(%esp), %xmm1 movd 8(%esp), %xmm0 .. punpckldq %xmm1, %xmm0 but only when -march=3Dcascadelake, not with -march=3Dx86-64. So this conf= uses the -march=3Dcascadelake -m32 testresult. Same with -march=3Dznver2 but not with -mavx2 -mno-sse4. diff --git a/gcc/testsuite/gcc.target/i386/vect-strided-3.c b/gcc/testsuite/gcc.target/i386/vect-strided-3.c index b462701a0b2..f9c54a6f715 100644 --- a/gcc/testsuite/gcc.target/i386/vect-strided-3.c +++ b/gcc/testsuite/gcc.target/i386/vect-strided-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -msse2 -mno-avx -fno-tree-slp-vectorize" } */ +/* { dg-options "-O2 -msse2 -mno-sse4 -fno-tree-slp-vectorize" } */ void foo (int * __restrict a, int *b, int s) {=