Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Subregister support #1141

Closed
llvmbot opened this issue May 4, 2006 · 2 comments
Closed

Subregister support #1141

llvmbot opened this issue May 4, 2006 · 2 comments
Labels
bugzilla Issues migrated from bugzilla duplicate Resolved as duplicate enhancement Improving things as opposed to bug fixing, e.g. new or missing feature llvm:codegen

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented May 4, 2006

Bugzilla Link 769
Resolution DUPLICATE
Resolved on Sep 26, 2007 01:14
Version 1.0
OS All
Reporter LLVM Bugzilla Contributor

Extended Description

This bug is to cover the work necessary in tablegen and the common code generator to support
subregisters. This will intially be used by PowerPC for condition registers, but will be extended to be
used by x86 for 8 and 16 bit (and 32 bit?) subregs.

An pseudocode example of this will basically look like:

virtual reg 1024, 1025 = CRField register class
virtual reg 1026 = CRBits register class

1024 = seteq X, Y
1025 = seteq W, Z
1026 = crand 1024.subreg(EQ), 1025.subreg(EQ)
br_cc 1026, mbb5

where EQ will be the subreg number of the "EQ" field in the CRField register class.

@lattner
Copy link
Collaborator

lattner commented May 4, 2006

This will also be extremely valuable for SPARC, which will let us get rid of the ugly FPMover.cpp hack.

Basically in the case of SPARC V8, there is no "copy double precision FP value", you have to do it as 2
copies of floats.

I would like to be able to codegen copy as:

Dest.subreg(LO) = COPYFLOAT SRC.subreg(LO)
Dest.subreg(HI) = COPYFLOAT SRC.subreg(HI)

In the instruction selector, then have everything happen.

Actually, this brings up an interesting point: we will probably have to do something special to handle
SSA and subreg definitions. In the example above, "Dest" is defined twice! :(

-Chris

@lattner
Copy link
Collaborator

lattner commented Sep 26, 2007

*** This bug has been marked as a duplicate of bug llvm/llvm-bugzilla-archive#1350 ***

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 3, 2021
@Endilll Endilll added enhancement Improving things as opposed to bug fixing, e.g. new or missing feature and removed new-feature labels Aug 15, 2023
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla duplicate Resolved as duplicate enhancement Improving things as opposed to bug fixing, e.g. new or missing feature llvm:codegen
Projects
None yet
Development

No branches or pull requests

3 participants