diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-01-21 22:02:30 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-01-21 22:02:30 +0000 |
commit | 47af023ada84011887edcc59b14967f2f7de32cd (patch) | |
tree | 21ca6567b81a2f23217c39b4ec0bf5f42b8145c0 /llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp | |
parent | 7bd4c60043d995d21ced0cdf0d6c67b8ce015177 (diff) | |
download | bcm5719-llvm-47af023ada84011887edcc59b14967f2f7de32cd.tar.gz bcm5719-llvm-47af023ada84011887edcc59b14967f2f7de32cd.zip |
[X86][SSE] movddup shuffle mask decodes
Patch to provide shuffle decodes and asm comments for the SSE3/AVX1 movddup double duplication instructions.
llvm-svn: 226705
Diffstat (limited to 'llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp b/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp index a4c0ca882c7..b7b2ba36ce7 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp @@ -200,12 +200,30 @@ bool llvm::EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS, case X86::MOVSHDUPrm: case X86::VMOVSHDUPrm: DestName = getRegName(MI->getOperand(0).getReg()); - DecodeMOVSHDUPMask(MVT::v4f32, ShuffleMask); - break; - - case X86::PSLLDQri: - case X86::VPSLLDQri: - Src1Name = getRegName(MI->getOperand(1).getReg()); + DecodeMOVSHDUPMask(MVT::v4f32, ShuffleMask);
+ break;
+
+ case X86::VMOVDDUPYrr:
+ Src1Name = getRegName(MI->getOperand(1).getReg());
+ // FALL THROUGH.
+ case X86::VMOVDDUPYrm:
+ DestName = getRegName(MI->getOperand(0).getReg());
+ DecodeMOVDDUPMask(MVT::v4f64, ShuffleMask);
+ break;
+
+ case X86::MOVDDUPrr:
+ case X86::VMOVDDUPrr:
+ Src1Name = getRegName(MI->getOperand(1).getReg());
+ // FALL THROUGH.
+ case X86::MOVDDUPrm:
+ case X86::VMOVDDUPrm:
+ DestName = getRegName(MI->getOperand(0).getReg());
+ DecodeMOVDDUPMask(MVT::v2f64, ShuffleMask);
+ break;
+
+ case X86::PSLLDQri:
+ case X86::VPSLLDQri:
+ Src1Name = getRegName(MI->getOperand(1).getReg());
DestName = getRegName(MI->getOperand(0).getReg()); if(MI->getOperand(MI->getNumOperands()-1).isImm()) DecodePSLLDQMask(MVT::v16i8, |