Displaying 9 results from an estimated 9 matches for "xmm0_64".
Did you mean:
xmm0_32
2008 Sep 24
2
[LLVMdev] Multi-Instruction Patterns
...(or 64 bit) XMM0. So it's not possible to define
>>> the super-register / sub-register relationship.
>>
>> I don't understand the problem with subregs here. Is it just a
>> naming issue? That can be solved by introducing alternate names,
>> like XMM0_32 and XMM0_64, for each of the subregs. They could
>> still be printed as "xmm0" in the assembly output of course.
>
> this is what the PPC64 backend does. "X0" (64-bit GPR) and "R0" (32-
> bit GPR) both print as "r0".
Somewhat different scenario there. On...
2008 Sep 24
3
[LLVMdev] Multi-Instruction Patterns
...it XMM0 is the same
> register as 32 bit (or 64 bit) XMM0. So it's not possible to define
> the super-register / sub-register relationship.
I don't understand the problem with subregs here. Is it just a
naming issue? That can be solved by introducing alternate names,
like XMM0_32 and XMM0_64, for each of the subregs. They could
still be printed as "xmm0" in the assembly output of course.
Dan
2008 Sep 24
0
[LLVMdev] Multi-Instruction Patterns
...; register as 32 bit (or 64 bit) XMM0. So it's not possible to define
>> the super-register / sub-register relationship.
>
> I don't understand the problem with subregs here. Is it just a
> naming issue? That can be solved by introducing alternate names,
> like XMM0_32 and XMM0_64, for each of the subregs. They could
> still be printed as "xmm0" in the assembly output of course.
this is what the PPC64 backend does. "X0" (64-bit GPR) and "R0" (32-
bit GPR) both print as "r0".
-Chris
2008 Sep 24
0
[LLVMdev] Multi-Instruction Patterns
...o it's not possible to define
>>>> the super-register / sub-register relationship.
>>>
>>> I don't understand the problem with subregs here. Is it just a
>>> naming issue? That can be solved by introducing alternate names,
>>> like XMM0_32 and XMM0_64, for each of the subregs. They could
>>> still be printed as "xmm0" in the assembly output of course.
>>
>> this is what the PPC64 backend does. "X0" (64-bit GPR) and "R0" (32-
>> bit GPR) both print as "r0".
>
> Somewhat dif...
2008 Sep 24
1
[LLVMdev] Multi-Instruction Patterns
...ution.
> Adding XMM0_32 etc. teaches codegen that only lower 32-bits of the
> registers are used. Perhaps this can open up additional optimization
> opportunities. On the other hand, adding these registers means
> introducing more aliasing which has compile time implication.
What about XMM0_64? What about things like AVX which applies the GPR aliasing
scheme to vectors? I think this is the right way to go but we need to do
things in a comprehensive way so we can expand as needed.
-Dave
2008 Sep 24
0
[LLVMdev] Multi-Instruction Patterns
On Sep 24, 2008, at 9:15 AM, David Greene wrote:
>
>> 1. Treat these instructions as cross register class copies. The src
>> and dst classes are different (VR128 and FR32) but "compatible".
>
> This seems reasonable.
>
>> 2. Model it as extract_subreg which coalescer can eliminate.
>>
>> #2 is conceptually correct. The problem is 128 bit XMM0 is
2008 Sep 26
0
[LLVMdev] Determining the register type of a MachineOperand
Yes,
Another reason this is useful is for register-type specific
representations of said register.
For example, all my registers are 128bit vector registers, however, if I
am only dealing with 32 bit vector registers, I can add write/read masks
that tell the underlying hardware not to work on the whole register, but
just a subset of the components.
32bit scalar mov: mov r1.x___, r0.x000
64bit
2008 Sep 26
2
[LLVMdev] Determining the register type of a MachineOperand
On Wednesday 24 September 2008 15:23, Mon Ping Wang wrote:
> To my knowledge, I don't think there is an easy way to get the MVT
> information from a MachineOperand. Why do you need it for? In my
See the thread I started on this very topic. Spilling is one place you'd like
to have this information.
> mind, the MachineInstr and its associated operands represent a
>
2008 Sep 24
2
[LLVMdev] Multi-Instruction Patterns
On Wednesday 24 September 2008 02:10, Evan Cheng wrote:
> > I wrote a pattern that looks something like the above in form, but how
> > do I tell the selection DAG to prefer my pattern over another that
> > already exists. I can't easily just disable that other pattern
> > because
> > it generates Machine Instruction opcode enums that are assumed to be
> >