mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
[X86] Separate DAG node for valign and palignr
They have different semantics (valign is interlane while palingr is intralane) and palingr is still needed even in the AVX512 context. According to the latest spec AVX512BW provides these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214887 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fd52de3695
commit
b4d58974c3
@ -17080,6 +17080,7 @@ const char *X86TargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
case X86ISD::PACKSS: return "X86ISD::PACKSS";
|
||||
case X86ISD::PACKUS: return "X86ISD::PACKUS";
|
||||
case X86ISD::PALIGNR: return "X86ISD::PALIGNR";
|
||||
case X86ISD::VALIGN: return "X86ISD::VALIGN";
|
||||
case X86ISD::PSHUFD: return "X86ISD::PSHUFD";
|
||||
case X86ISD::PSHUFHW: return "X86ISD::PSHUFHW";
|
||||
case X86ISD::PSHUFLW: return "X86ISD::PSHUFLW";
|
||||
|
@ -320,7 +320,10 @@ namespace llvm {
|
||||
// Several flavors of instructions with vector shuffle behaviors.
|
||||
PACKSS,
|
||||
PACKUS,
|
||||
// Intra-lane alignr
|
||||
PALIGNR,
|
||||
// AVX512 inter-lane alignr
|
||||
VALIGN,
|
||||
PSHUFD,
|
||||
PSHUFHW,
|
||||
PSHUFLW,
|
||||
|
@ -203,6 +203,7 @@ def SDTFma : SDTypeProfile<1, 3, [SDTCisSameAs<0,1>,
|
||||
SDTCisSameAs<1,2>, SDTCisSameAs<1,3>]>;
|
||||
|
||||
def X86PAlignr : SDNode<"X86ISD::PALIGNR", SDTShuff3OpI>;
|
||||
def X86VAlign : SDNode<"X86ISD::VALIGN", SDTShuff3OpI>;
|
||||
|
||||
def X86PShufd : SDNode<"X86ISD::PSHUFD", SDTShuff2OpI>;
|
||||
def X86PShufhw : SDNode<"X86ISD::PSHUFHW", SDTShuff2OpI>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user