From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 210D339BE82E; Wed, 9 Jun 2021 21:35:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 210D339BE82E From: "bergner at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/100085] Bad code for union transfer from __float128 to vector types Date: Wed, 09 Jun 2021 21:35:54 +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: 10.2.1 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: bergner at gcc dot gnu.org X-Bugzilla-Status: NEW 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jun 2021 21:35:55 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D100085 --- Comment #11 from Peter Bergner --- (In reply to luoxhu from comment #9) > But for __float128 to __int128 mentioned in #c4, need hack > rs6000_modes_tieable_p > to remove the stack operation in dse1. But I am not sure this is *LEGAL* > since TImode is allocated to GPR, It seems not true to access TImode from > ALTIVEC or VSX without copying? We used to have a -mvsx-timode option which allowed TImode pseudos into the= VSX registers. We deprecated the option a while back and basically always allow TImode in the VSX registers now. I would say we even prefer them in VSX registers over GOR registers. The only "issue" is that our ABIs define parameter passing and return values for TImode values go through the GPRs. = :-(=