search for: movpd2sdrr

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...