[X86] Support intrinsic _mm_cldemote

Reviewers: LuoYuanke, craig.topper, RKSimon, pengfei

Reviewed By: craig.topper

Subscribers: cfe-commits, llvm-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75896
This commit is contained in:
Shengchen Kan 2020-03-10 15:57:45 +08:00
parent d5180ea134
commit ab69cd0779
2 changed files with 10 additions and 0 deletions

View File

@ -18,11 +18,19 @@
#define __DEFAULT_FN_ATTRS \
__attribute__((__always_inline__, __nodebug__, __target__("cldemote")))
/// Hint to hardware that the cache line that contains \p __P should be demoted
/// from the cache closest to the processor core to a level more distant from
/// the processor core.
///
/// \headerfile <x86intrin.h>
///
/// This intrinsic corresponds to the <c> CLDEMOTE </c> instruction.
static __inline__ void __DEFAULT_FN_ATTRS
_cldemote(const void * __P) {
__builtin_ia32_cldemote(__P);
}
#define _mm_cldemote(p) _cldemote(p)
#undef __DEFAULT_FN_ATTRS
#endif

View File

@ -7,4 +7,6 @@ void test_cldemote(const void *p) {
//CHECK-LABEL: @test_cldemote
//CHECK: call void @llvm.x86.cldemote(i8* %{{.*}})
_cldemote(p);
//CHECK: call void @llvm.x86.cldemote(i8* %{{.*}})
_mm_cldemote(p);
}