From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 48D293858C5E; Sat, 5 Aug 2023 15:05:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 48D293858C5E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1691247942; bh=7j7xe0hSuypm9xCLCdMaNGK4H0TcDUw3DTajJ/NqzPQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=eFd1zBjkubTrVyNziKndmwVjvqUk0aLFajp3JaSLfKkyLwrEknuVHPJ/rfaJlqcnh QupKr4hePTd/S4hd/BQ4zKNP/8K2rszctPpfFYVe7QAb9rcBM3N8ISZeRtqN8YKoY8 fcvUpckGDJk6TZO3r0ypA9B3VHHPmDkzMNeheP6g= From: "egallager at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/105504] Fails to break dependency for vcvtss2sd xmm, xmm, mem Date: Sat, 05 Aug 2023 15:05:41 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 12.1.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: egallager 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: 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=3D105504 --- Comment #7 from Eric Gallager --- (In reply to CVS Commits from comment #6) > The master branch has been updated by hongtao Liu : >=20 > https://gcc.gnu.org/g:5e005393d4ff0a428c5f55b9ba7f65d6078a7cf5 >=20 > commit r13-1009-g5e005393d4ff0a428c5f55b9ba7f65d6078a7cf5 > Author: liuhongt > Date: Mon May 30 15:30:51 2022 +0800 >=20 > Disparages SSE_REGS alternatives sligntly with ?v instead of *v in > *mov{si,di}_internal. >=20=20=20=20=20 > So alternative v won't be igored in record_reg_classess. >=20=20=20=20=20 > Similar for *r alternatives in some vector patterns. >=20=20=20=20=20 > It helps testcase in the PR, also RA now makes better decisions for > gcc.target/i386/extract-insert-combining.c >=20=20=20=20=20 > movd %esi, %xmm0 > movd %edi, %xmm1 > - movl %esi, -12(%rsp) > paddd %xmm0, %xmm1 > pinsrd $0, %esi, %xmm0 > paddd %xmm1, %xmm0 >=20=20=20=20=20 > The patch has no big impact on SPEC2017 for both O2 and Ofast > march=3Dnative run. >=20=20=20=20=20 > And I noticed there's some changes in SPEC2017 from code like >=20=20=20=20=20 > mov mem, %eax > vmovd %eax, %xmm0 > .. > mov %eax, 64(%rsp) >=20=20=20=20=20 > to >=20=20=20=20=20 > vmovd mem, %xmm0 > .. > vmovd %xmm0, 64(%rsp) >=20=20=20=20=20 > Which should be exactly what we want? >=20=20=20=20=20 > gcc/ChangeLog: >=20=20=20=20=20 > PR target/105513 > PR target/105504 > * config/i386/i386.md (*movsi_internal): Change alternative > from *v to ?v. > (*movdi_internal): Ditto. > * config/i386/sse.md (vec_set_0): Change alternative *r > to ?r. > (*vec_extractv4sf_mem): Ditto. > (*vec_extracthf): Ditto. >=20=20=20=20=20 > gcc/testsuite/ChangeLog: >=20=20=20=20=20 > * gcc.target/i386/pr105513-1.c: New test. > * gcc.target/i386/extract-insert-combining.c: Add new > scan-assembler-not for spill. Did this fix it?=