Displaying 3 results from an estimated 3 matches for "sse12_unpack_interleave".
2011 Feb 26
0
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
...ng because it appears there are now two
ways to match certain shuffle instructions in .td files: one through the
traditional shuffle operators like unpckl and shufp and another through
these special X86* operators.
This is reflected in X86InstrSSE.td:
"Traditional":
defm VUNPCKLPS: sse12_unpack_interleave<0x14, unpckl, v4f32, memopv4f32,
VR128, f128mem, "unpcklps\t{$src2, $src1, $dst|$dst, $src1, $src2}",
SSEPackedSingle>, VEX_4V;
"New-style":
def : Pat<(v4f32 (X86Unpcklps VR128:$src1, (memopv4f32 addr:$src2))),
(VUNP...
2011 Feb 25
2
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
In ToT, LowerVECTOR_SHUFFLE for x86 has this code:
if (X86::isUNPCKLMask(SVOp))
getTargetShuffleNode(getUNPCKLOpcode(VT) dl, VT, V1, V2, DAG);
why would this not be:
if (X86::isUNPCKLMask(SVOp))
return SVOp;
I'm trying to add support for VUNPCKL and am getting into trouble
because the existing code ends up creating:
VUNPCKLPS
load
load
which is badness come selection
2011 Feb 26
2
[LLVMdev] X86 LowerVECTOR_SHUFFLE Question
...ways to match certain shuffle instructions in .td files: one through the
> traditional shuffle operators like unpckl and shufp and another through
> these special X86* operators.
>
> This is reflected in X86InstrSSE.td:
>
> "Traditional":
>
> defm VUNPCKLPS: sse12_unpack_interleave<0x14, unpckl, v4f32, memopv4f32,
> VR128, f128mem, "unpcklps\t{$src2, $src1, $dst|$dst, $src1, $src2}",
> SSEPackedSingle>, VEX_4V;
> "New-style":
>
> def : Pat<(v4f32 (X86Unpcklps VR128:$src1, (memopv4f32 addr:$src2))...