diff options
author | Gabor Buella <gabor.buella@intel.com> | 2018-05-01 10:05:42 +0000 |
---|---|---|
committer | Gabor Buella <gabor.buella@intel.com> | 2018-05-01 10:05:42 +0000 |
commit | a51e0c2243d72ed0c412dc53b6c731a3ff21241f (patch) | |
tree | f3242a032167bde30cd9fdd9f650330ff2dd2dd5 /clang/lib/Basic/Targets/X86.cpp | |
parent | c8ded04e850d3bb73dd9ffb9ebfb135246dbcf52 (diff) | |
download | bcm5719-llvm-a51e0c2243d72ed0c412dc53b6c731a3ff21241f.tar.gz bcm5719-llvm-a51e0c2243d72ed0c412dc53b6c731a3ff21241f.zip |
[X86] directstore and movdir64b intrinsics
Reviewers: spatel, craig.topper, RKSimon
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D45984
llvm-svn: 331249
Diffstat (limited to 'clang/lib/Basic/Targets/X86.cpp')
-rw-r--r-- | clang/lib/Basic/Targets/X86.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp index f2d643b515a..bb098cb5065 100644 --- a/clang/lib/Basic/Targets/X86.cpp +++ b/clang/lib/Basic/Targets/X86.cpp @@ -246,6 +246,8 @@ bool X86TargetInfo::initFeatureMap( case CK_Tremont: setFeatureEnabledImpl(Features, "cldemote", true); + setFeatureEnabledImpl(Features, "movdiri", true); + setFeatureEnabledImpl(Features, "movdir64b", true); setFeatureEnabledImpl(Features, "gfni", true); setFeatureEnabledImpl(Features, "waitpkg", true); LLVM_FALLTHROUGH; @@ -821,6 +823,10 @@ bool X86TargetInfo::handleTargetFeatures(std::vector<std::string> &Features, HasLAHFSAHF = true; } else if (Feature == "+waitpkg") { HasWAITPKG = true; + } else if (Feature == "+movdiri") { + HasMOVDIRI = true; + } else if (Feature == "+movdir64b") { + HasMOVDIR64B = true; } X86SSEEnum Level = llvm::StringSwitch<X86SSEEnum>(Feature) @@ -1177,6 +1183,10 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("__CLDEMOTE__"); if (HasWAITPKG) Builder.defineMacro("__WAITPKG__"); + if (HasMOVDIRI) + Builder.defineMacro("__MOVDIRI__"); + if (HasMOVDIR64B) + Builder.defineMacro("__MOVDIR64B__"); // Each case falls through to the previous one here. switch (SSELevel) { @@ -1301,6 +1311,8 @@ bool X86TargetInfo::isValidFeatureName(StringRef Name) const { .Case("lzcnt", true) .Case("mmx", true) .Case("movbe", true) + .Case("movdiri", true) + .Case("movdir64b", true) .Case("mpx", true) .Case("mwaitx", true) .Case("pclmul", true) @@ -1377,6 +1389,8 @@ bool X86TargetInfo::hasFeature(StringRef Feature) const { .Case("mm3dnowa", MMX3DNowLevel >= AMD3DNowAthlon) .Case("mmx", MMX3DNowLevel >= MMX) .Case("movbe", HasMOVBE) + .Case("movdiri", HasMOVDIRI) + .Case("movdir64b", HasMOVDIR64B) .Case("mpx", HasMPX) .Case("mwaitx", HasMWAITX) .Case("pclmul", HasPCLMUL) |