]> granicus.if.org Git - clang/commitdiff
[X86] Add -mprefetchwt1/-mno-prefetchwt1 command line options and __PREFETCHWT1__...
authorCraig Topper <craig.topper@gmail.com>
Wed, 8 Feb 2017 08:23:40 +0000 (08:23 +0000)
committerCraig Topper <craig.topper@gmail.com>
Wed, 8 Feb 2017 08:23:40 +0000 (08:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@294424 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ClangCommandLineReference.rst
include/clang/Driver/Options.td
lib/Basic/Targets.cpp
test/Driver/x86-target-features.c
test/Preprocessor/predefined-arch-macros.c

index feafc7a331671eb9eedc0404cc6768b3d62c191c..c7aead921a7e92987e6a0259d613161f9d4d0663 100644 (file)
@@ -2195,6 +2195,8 @@ X86
 
 .. option:: -mpopcnt, -mno-popcnt
 
+.. option:: -mprefetchwt1, -mno-prefetchwt1
+
 .. option:: -mprfchw, -mno-prfchw
 
 .. option:: -mrdrnd, -mno-rdrnd
index 29fa617088dfa44c1ec171b2de9ae6ba32464f35..813f48dae2eb503244c815a5df7ed3db4bbc521d 100644 (file)
@@ -1720,6 +1720,7 @@ def mno_clwb : Flag<["-"], "mno-clwb">, Group<m_x86_Features_Group>;
 def mno_movbe : Flag<["-"], "mno-movbe">, Group<m_x86_Features_Group>;
 def mno_mpx : Flag<["-"], "mno-mpx">, Group<m_x86_Features_Group>;
 def mno_sgx : Flag<["-"], "mno-sgx">, Group<m_x86_Features_Group>;
+def mno_prefetchwt1 : Flag<["-"], "mno-prefetchwt1">, Group<m_x86_Features_Group>;
 
 def munaligned_access : Flag<["-"], "munaligned-access">, Group<m_arm_Features_Group>,
   HelpText<"Allow memory accesses to be unaligned (AArch32/AArch64 only)">;
@@ -1917,6 +1918,7 @@ def mclwb : Flag<["-"], "mclwb">, Group<m_x86_Features_Group>;
 def mmovbe : Flag<["-"], "mmovbe">, Group<m_x86_Features_Group>;
 def mmpx : Flag<["-"], "mmpx">, Group<m_x86_Features_Group>;
 def msgx : Flag<["-"], "msgx">, Group<m_x86_Features_Group>;
+def mprefetchwt1 : Flag<["-"], "mprefetchwt1">, Group<m_x86_Features_Group>;
 def mips16 : Flag<["-"], "mips16">, Group<m_Group>;
 def mno_mips16 : Flag<["-"], "mno-mips16">, Group<m_Group>;
 def mmicromips : Flag<["-"], "mmicromips">, Group<m_Group>;
index 527041a8665c26b03ffb54ad4476155486684400..bbc3d16493de7286cd26a6dda2bc8a88139853ea 100644 (file)
@@ -3885,6 +3885,8 @@ void X86TargetInfo::getTargetDefines(const LangOptions &Opts,
     Builder.defineMacro("__MPX__");
   if (HasSGX)
     Builder.defineMacro("__SGX__");
+  if (HasPREFETCHWT1)
+    Builder.defineMacro("__PREFETCHWT1__");
 
   // Each case falls through to the previous one here.
   switch (SSELevel) {
index 79c409db1c0b2a2568dd5852bd069b81c1dbc039..bf4d456c23beae4862c9f778d891c99da9184233 100644 (file)
@@ -74,3 +74,8 @@
 // RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-sgx %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-SGX %s
 // SGX: "-target-feature" "+sgx"
 // NO-SGX: "-target-feature" "-sgx"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mprefetchwt1 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=PREFETCHWT1 %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-prefetchwt1 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-PREFETCHWT1 %s
+// PREFETCHWT1: "-target-feature" "+prefetchwt1"
+// NO-PREFETCHWT1: "-target-feature" "-prefetchwt1"
index 9660244ccc50b8749c32677c062b6f6920acc2aa..2990c5f67ab89abd739c0d7fc50b7094a86381a8 100644 (file)
 // CHECK_KNL_M32: #define __MMX__ 1
 // CHECK_KNL_M32: #define __PCLMUL__ 1
 // CHECK_KNL_M32: #define __POPCNT__ 1
+// CHECK_KNL_M32: #define __PREFETCHWT1__ 1
 // CHECK_KNL_M32: #define __RDRND__ 1
 // CHECK_KNL_M32: #define __RTM__ 1
 // CHECK_KNL_M32: #define __SSE2__ 1
 // CHECK_KNL_M64: #define __MMX__ 1
 // CHECK_KNL_M64: #define __PCLMUL__ 1
 // CHECK_KNL_M64: #define __POPCNT__ 1
+// CHECK_KNL_M64: #define __PREFETCHWT1__ 1
 // CHECK_KNL_M64: #define __RDRND__ 1
 // CHECK_KNL_M64: #define __RTM__ 1
 // CHECK_KNL_M64: #define __SSE2_MATH__ 1