diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-10-15 01:51:53 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-10-15 01:51:53 +0000 |
| commit | 671779456a90771adf5410cc24dbe60b92f335d9 (patch) | |
| tree | 7205a8f0f22edd86d32245b25fec0162bc2c1ebe /llvm/lib/Target/X86 | |
| parent | b5000974fe80c67abe847c3e84ada87cf9bdb508 (diff) | |
| download | bcm5719-llvm-671779456a90771adf5410cc24dbe60b92f335d9.tar.gz bcm5719-llvm-671779456a90771adf5410cc24dbe60b92f335d9.zip | |
[X86] Add 128 MOVDDUP to the constant pool printing in X86AsmPrinter::EmitInstruction.
We use this instruction to broadcast a single 64-bit value to a v2i64/v2f64 vector.
llvm-svn: 344486
Diffstat (limited to 'llvm/lib/Target/X86')
| -rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index acb2bc20858..76f0dd4837b 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -2133,6 +2133,9 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { } } break; + case X86::MOVDDUPrm: + case X86::VMOVDDUPrm: + case X86::VMOVDDUPZ128rm: case X86::VBROADCASTSSrm: case X86::VBROADCASTSSYrm: case X86::VBROADCASTSSZ128m: @@ -2169,6 +2172,9 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { int NumElts; switch (MI->getOpcode()) { default: llvm_unreachable("Invalid opcode"); + case X86::MOVDDUPrm: NumElts = 2; break; + case X86::VMOVDDUPrm: NumElts = 2; break; + case X86::VMOVDDUPZ128rm: NumElts = 2; break; case X86::VBROADCASTSSrm: NumElts = 4; break; case X86::VBROADCASTSSYrm: NumElts = 8; break; case X86::VBROADCASTSSZ128m: NumElts = 4; break; |

