diff options
author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-01-01 15:12:34 +0000 |
---|---|---|
committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-01-01 15:12:34 +0000 |
commit | de3f751bafe64d1d71d8c87b10a8254b276ec4d9 (patch) | |
tree | 77a95ec766ee89abe9bef93b90fe6fed981873bd /llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | |
parent | 623b0d64b31502dc059a7327e8be1c892e697ff5 (diff) | |
download | bcm5719-llvm-de3f751bafe64d1d71d8c87b10a8254b276ec4d9.tar.gz bcm5719-llvm-de3f751bafe64d1d71d8c87b10a8254b276ec4d9.zip |
AVX-512: Added intrinsics for vcvt, vcvtt, vrndscale, vcmp
Printing rounding control.
Enncoding for EVEX_RC (rounding control).
llvm-svn: 198277
Diffstat (limited to 'llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp index e7e7b151c3b..320ac5addbb 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -113,6 +113,19 @@ void X86IntelInstPrinter::printAVXCC(const MCInst *MI, unsigned Op, } } +void X86IntelInstPrinter::printRoundingControl(const MCInst *MI, unsigned Op, + raw_ostream &O) { + int64_t Imm = MI->getOperand(Op).getImm() & 0x1f; + switch (Imm) { + case 0: O << "{rn-sae}"; break; + case 1: O << "{rd-sae}"; break; + case 2: O << "{ru-sae}"; break; + case 3: O << "{rz-sae}"; break; + + default: llvm_unreachable("Invalid AVX-512 rounding control argument!"); + } +} + /// printPCRelImm - This is used to print an immediate value that ends up /// being encoded as a pc-relative value. void X86IntelInstPrinter::printPCRelImm(const MCInst *MI, unsigned OpNo, |