aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86Subtarget.h
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-10-30 19:57:21 +0000
committerCraig Topper <craig.topper@gmail.com>2011-10-30 19:57:21 +0000
commite7b05504faa86a5c0b80a62ddb60cbb0cf163d5d (patch)
tree49c2f61e5f850cac76f2bc66ec33c9a591abe909 /lib/Target/X86/X86Subtarget.h
parent6dc9e2bf7455fa1494078d5d52f1363b05183f20 (diff)
downloadexternal_llvm-e7b05504faa86a5c0b80a62ddb60cbb0cf163d5d.tar.gz
external_llvm-e7b05504faa86a5c0b80a62ddb60cbb0cf163d5d.tar.bz2
external_llvm-e7b05504faa86a5c0b80a62ddb60cbb0cf163d5d.zip
Add intrinsics and feature flag for read/write FS/GS base instructions. Also add AVX2 feature flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143319 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86Subtarget.h')
-rw-r--r--lib/Target/X86/X86Subtarget.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 5e08f014e7..763fb432f4 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -78,6 +78,9 @@ protected:
/// HasAVX - Target has AVX instructions
bool HasAVX;
+ /// HasAVX2 - Target has AVX2 instructions
+ bool HasAVX2;
+
/// HasAES - Target has AES instructions
bool HasAES;
@@ -99,6 +102,9 @@ protected:
/// HasF16C - Processor has 16-bit floating point conversion instructions.
bool HasF16C;
+ /// HasFSGSBase - Processor has FS/GS base insturctions.
+ bool HasFSGSBase;
+
/// HasLZCNT - Processor has LZCNT instruction.
bool HasLZCNT;
@@ -181,6 +187,7 @@ public:
bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; }
bool hasPOPCNT() const { return HasPOPCNT; }
bool hasAVX() const { return HasAVX; }
+ bool hasAVX2() const { return HasAVX2; }
bool hasXMM() const { return hasSSE1() || hasAVX(); }
bool hasXMMInt() const { return hasSSE2() || hasAVX(); }
bool hasAES() const { return HasAES; }
@@ -190,6 +197,7 @@ public:
bool hasMOVBE() const { return HasMOVBE; }
bool hasRDRAND() const { return HasRDRAND; }
bool hasF16C() const { return HasF16C; }
+ bool hasFSGSBase() const { return HasFSGSBase; }
bool hasLZCNT() const { return HasLZCNT; }
bool hasBMI() const { return HasBMI; }
bool hasBMI2() const { return HasBMI2; }