diff options
| author | Sam Parker <sam.parker@arm.com> | 2017-09-29 13:11:33 +0000 |
|---|---|---|
| committer | Sam Parker <sam.parker@arm.com> | 2017-09-29 13:11:33 +0000 |
| commit | 963da5b1191f0ec084247252666d3f669fdaf71c (patch) | |
| tree | 397d3ead2a6958ba1ccedc93cec935b89036c180 /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | |
| parent | 0b5db55b963a69d45f5712935c60d1ec8e69a511 (diff) | |
| download | bcm5719-llvm-963da5b1191f0ec084247252666d3f669fdaf71c.tar.gz bcm5719-llvm-963da5b1191f0ec084247252666d3f669fdaf71c.zip | |
[ARM] v8.3-a complex number support
New instructions are added to AArch32 and AArch64 to aid
floating-point multiplication and addition of complex numbers, where
the complex numbers are packed in a vector register as a pair of
elements. The Imaginary part of the number is placed in the more
significant element, and the Real part of the number is placed in the
less significant element.
This patch adds assembler for the ARM target.
Differential Revision: https://reviews.llvm.org/D36789
llvm-svn: 314511
Diffstat (limited to 'llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp index be6815af2eb..4fc67a4f6eb 100644 --- a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp +++ b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp @@ -1535,3 +1535,12 @@ void ARMInstPrinter::printVectorListFourSpaced(const MCInst *MI, unsigned OpNum, printRegName(O, MI->getOperand(OpNum).getReg() + 6); O << "}"; } + +template<int64_t Angle, int64_t Remainder> +void ARMInstPrinter::printComplexRotationOp(const MCInst *MI, unsigned OpNo, + const MCSubtargetInfo &STI, + raw_ostream &O) { + unsigned Val = MI->getOperand(OpNo).getImm(); + O << "#" << (Val * Angle) + Remainder; +} + |

