summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorGabor Buella <gabor.buella@intel.com>2018-04-20 18:44:33 +0000
committerGabor Buella <gabor.buella@intel.com>2018-04-20 18:44:33 +0000
commiteba6c42e66c0b438e371df9cfbbc722126509917 (patch)
treeaf9d3019b2760d663f28aefee8b110c9f58c3ed9 /clang/test
parent31fa8025ba5143cdb2804e637dd5f3e3cd2e1c26 (diff)
downloadbcm5719-llvm-eba6c42e66c0b438e371df9cfbbc722126509917.tar.gz
bcm5719-llvm-eba6c42e66c0b438e371df9cfbbc722126509917.zip
[X86] WaitPKG intrinsics
Reviewers: craig.topper, zvi Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D45254 llvm-svn: 330463
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGen/waitpkg.c25
-rw-r--r--clang/test/Driver/x86-target-features.c5
-rw-r--r--clang/test/Preprocessor/predefined-arch-macros.c2
3 files changed, 32 insertions, 0 deletions
diff --git a/clang/test/CodeGen/waitpkg.c b/clang/test/CodeGen/waitpkg.c
new file mode 100644
index 00000000000..e4ac1cd6636
--- /dev/null
+++ b/clang/test/CodeGen/waitpkg.c
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 %s -ffreestanding -triple x86_64-unknown-unknown -emit-llvm -target-feature +waitpkg -Wall -pedantic -o - | FileCheck %s
+// RUN: %clang_cc1 %s -ffreestanding -triple i386-unknown-unknown -emit-llvm -target-feature +waitpkg -Wall -pedantic -o - | FileCheck %s
+
+#include <x86intrin.h>
+
+#include <stddef.h>
+#include <stdint.h>
+
+void test_umonitor(void *address) {
+ //CHECK-LABEL: @test_umonitor
+ //CHECK: call void @llvm.x86.umonitor(i8* %{{.*}})
+ return _umonitor(address);
+}
+
+uint8_t test_umwait(uint32_t control, uint64_t counter) {
+ //CHECK-LABEL: @test_umwait
+ //CHECK: call i8 @llvm.x86.umwait(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})
+ return _umwait(control, counter);
+}
+
+uint8_t test_tpause(uint32_t control, uint64_t counter) {
+ //CHECK-LABEL: @test_tpause
+ //CHECK: call i8 @llvm.x86.tpause(i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}})
+ return _tpause(control, counter);
+}
diff --git a/clang/test/Driver/x86-target-features.c b/clang/test/Driver/x86-target-features.c
index ccc2a6225c4..b066babb72f 100644
--- a/clang/test/Driver/x86-target-features.c
+++ b/clang/test/Driver/x86-target-features.c
@@ -144,3 +144,8 @@
// RUN: %clang -target i386-linux-gnu -mretpoline -mno-retpoline-external-thunk %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-RETPOLINE-EXTERNAL-THUNK %s
// RETPOLINE-EXTERNAL-THUNK: "-target-feature" "+retpoline-external-thunk"
// NO-RETPOLINE-EXTERNAL-THUNK: "-target-feature" "-retpoline-external-thunk"
+
+// RUN: %clang -target i386-linux-gnu -mwaitpkg %s -### -o %t.o 2>&1 | FileCheck -check-prefix=WAITPKG %s
+// RUN: %clang -target i386-linux-gnu -mno-waitpkg %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-WAITPKG %s
+// WAITPKG: "-target-feature" "+waitpkg"
+// NO-WAITPKG: "-target-feature" "-waitpkg"
diff --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c
index f213cbdff4d..fad91793da3 100644
--- a/clang/test/Preprocessor/predefined-arch-macros.c
+++ b/clang/test/Preprocessor/predefined-arch-macros.c
@@ -1482,6 +1482,7 @@
// CHECK_TRM_M32: #define __SSE_MATH__ 1
// CHECK_TRM_M32: #define __SSE__ 1
// CHECK_TRM_M32: #define __SSSE3__ 1
+// CHECK_TRM_M32: #define __WAITPKG__ 1
// CHECK_TRM_M32: #define __XSAVEC__ 1
// CHECK_TRM_M32: #define __XSAVEOPT__ 1
// CHECK_TRM_M32: #define __XSAVES__ 1
@@ -1518,6 +1519,7 @@
// CHECK_TRM_M64: #define __SSE4_2__ 1
// CHECK_TRM_M64: #define __SSE__ 1
// CHECK_TRM_M64: #define __SSSE3__ 1
+// CHECK_TRM_M64: #define __WAITPKG__ 1
// CHECK_TRM_M64: #define __XSAVEC__ 1
// CHECK_TRM_M64: #define __XSAVEOPT__ 1
// CHECK_TRM_M64: #define __XSAVES__ 1
OpenPOWER on IntegriCloud