Displaying 3 results from an estimated 3 matches for "movpd2sdrr".
2008 Nov 17
0
[LLVMdev] Patterns with Multiple Stores
...VSDmr addr:$dst, FR64:$src))), imm:3)
>
> So I want to convert an unaligned vector store to a scalar store, a shuffle
> and a scalar store.
I got a little further with this:
def : Pat<(unalignedstore (v2f64 VR128:$src), addr:$dst),
(MOVSDmr (ADD64ri8 (LEA64r addr:$dst), 8), (MOVPD2SDrr (SHUFPDrri
(v2f64 VR128:$src), (v2f64 VR128:$src), 3)), (MOVSDmr addr:$dst, FR64:
$src))>;
Now tblgen (rightly) complains about MOVSDmr having too many operands. How do
I specify the dependency MOVSD->SHUFPD->MOVSD?
I'm a little nervous about the extra MOVPD2SDrr. It exists only...
2008 Nov 17
2
[LLVMdev] Patterns with Multiple Stores
I want to write a pattern that looks something like this:
def : Pat<(unalignedstore (v2f64 VR128:$src), addr:$dst),
(MOVSDmr ADD64ri8(addr:$dst, imm:8), ( SHUFPDrri (VR128:$src,
(MOVSDmr addr:$dst, FR64:$src))), imm:3)
So I want to convert an unaligned vector store to a scalar store, a shuffle
and a scalar store.
There are several question I have:
- Is the imm:3 syntax
2008 Nov 18
1
[LLVMdev] Patterns with Multiple Stores
...;
>> So I want to convert an unaligned vector store to a scalar store, a
>> shuffle
>> and a scalar store.
>
> I got a little further with this:
>
> def : Pat<(unalignedstore (v2f64 VR128:$src), addr:$dst),
> (MOVSDmr (ADD64ri8 (LEA64r addr:$dst), 8), (MOVPD2SDrr
> (SHUFPDrri
> (v2f64 VR128:$src), (v2f64 VR128:$src), 3)), (MOVSDmr addr:$dst, FR64:
> $src))>;
>
> Now tblgen (rightly) complains about MOVSDmr having too many
> operands. How do
> I specify the dependency MOVSD->SHUFPD->MOVSD?
>
> I'm a little nervous...