summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit8b08f5232bc027a8e9f669b6ea9fab0270357211 (patch)
tree9cab7364995797453a51f186f14063ed4624790d /llvm/lib/Target/X86/X86Subtarget.h
parent2d5289d621c29073b1bf09c1d8cfcb4c0dc811a9 (diff)
downloadbcm5719-llvm-8b08f5232bc027a8e9f669b6ea9fab0270357211.tar.gz
bcm5719-llvm-8b08f5232bc027a8e9f669b6ea9fab0270357211.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.
llvm-svn: 121439
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.h')
-rw-r--r--llvm/lib/Target/X86/X86Subtarget.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.h b/llvm/lib/Target/X86/X86Subtarget.h
index 58cf3e0c6d2..95c438d678a 100644
--- a/llvm/lib/Target/X86/X86Subtarget.h
+++ b/llvm/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; }
OpenPOWER on IntegriCloud