summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2014-01-01 15:12:34 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2014-01-01 15:12:34 +0000
commitde3f751bafe64d1d71d8c87b10a8254b276ec4d9 (patch)
tree77a95ec766ee89abe9bef93b90fe6fed981873bd /llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
parent623b0d64b31502dc059a7327e8be1c892e697ff5 (diff)
downloadbcm5719-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.cpp13
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,
OpenPOWER on IntegriCloud