aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86Subtarget.h
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2010-12-10 00:26:57 +0000
committerNate Begeman <natebegeman@mac.com>2010-12-10 00:26:57 +0000
commit2ea8ee7c76b8d8754d81072e691caf25d23289e3 (patch)
treeb3d1820d852b71777b8db8f87672b044555d6e5c /lib/Target/X86/X86Subtarget.h
parent1c952b9cc98e84b28f68f0f6cf11197263f89863 (diff)
downloadexternal_llvm-2ea8ee7c76b8d8754d81072e691caf25d23289e3.tar.gz
external_llvm-2ea8ee7c76b8d8754d81072e691caf25d23289e3.tar.bz2
external_llvm-2ea8ee7c76b8d8754d81072e691caf25d23289e3.zip
Formalize the notion that AVX and SSE are non-overlapping extensions from the compiler's point of view. Per email discussion, we either want to always use VEX-prefixed instructions or never use them, and are taking "HasAVX" to mean "Always use VEX". Passing -mattr=-avx,+sse42 should serve to restore legacy SSE support when desirable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121439 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86Subtarget.h')
-rw-r--r--lib/Target/X86/X86Subtarget.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 58cf3e0c6d..95c438d678 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -155,6 +155,8 @@ public:
bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; }
bool hasPOPCNT() const { return HasPOPCNT; }
bool hasAVX() const { return HasAVX; }
+ bool hasXMM() const { return hasSSE1() || hasAVX(); }
+ bool hasXMMInt() const { return hasSSE2() || hasAVX(); }
bool hasAES() const { return HasAES; }
bool hasCLMUL() const { return HasCLMUL; }
bool hasFMA3() const { return HasFMA3; }