search for: shuffle_get_shuf_imm

Displaying 4 results from an estimated 4 matches for "shuffle_get_shuf_imm".

2010 Aug 04
2
[LLVMdev] x86 Vector Shuffle Patterns
...src3 VR128:$src1, VR128:$src2)))]>; "shufp" is the magic bit here. It's definition looks like this: def shufp : PatFrag<(ops node:$lhs, node:$rhs), (vector_shuffle node:$lhs, node:$rhs), [{ return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N)); }], SHUFFLE_get_shuf_imm>; First off, why does the vector_shuffle pattern take only two operands? I understand that the VECTOR_SHUFFLE node has three operands but vector_shuffle is defined as: def SDTVecShuffle : SDTypeProfile<1, 2, [ SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2> ]>; def vector_shuffle :...
2011 Mar 18
0
[LLVMdev] Long-Term ISel Design
On Mar 17, 2011, at 9:32 AM, David A. Greene wrote: > Chris Lattner <clattner at apple.com> writes: >>> 1. We have special target-specific operators for certain shuffles in X86, >>> such as X86unpckl. > >> It also eliminates a lot of fragility. Before doing this, X86 >> legalize would have to be very careful to specifically form shuffles >> that
2011 Mar 27
2
[LLVMdev] Long-Term ISel Design
...before by moving to X86ISD nodes. Actually, it would be matching code in X86ISelLowering, in the form of is.*Mask. For example: In X86ISelLowering.cpp: bool X86ISelLowering::isSHUFPMask(...) { ... } unsigned X86::getShuffleSHUFImmediate(SDNode *N) { ... } In X86InstrFragmentsSIMD.td: def SHUFFLE_get_shuf_imm : SDNodeXForm<vector_shuffle, [{ return getI8Imm(X86::getShuffleSHUFImmediate(N)); }]>; def shufp : PatFrag<(ops node:$lhs, node:$rhs), (vector_shuffle node:$lhs, node:$rhs), [{ return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N)); }], SHUFFLE_get_shuf_imm&gt...
2011 Mar 17
2
[LLVMdev] Long-Term ISel Design
Chris Lattner <clattner at apple.com> writes: >> 1. We have special target-specific operators for certain shuffles in X86, >> such as X86unpckl. > It also eliminates a lot of fragility. Before doing this, X86 > legalize would have to be very careful to specifically form shuffles > that it knew isel would turn into (e.g.) unpck operations. Now > instead of