[clang] ab69cd0 - [X86] Support intrinsic _mm_cldemote

Shengchen Kan via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 11 19:04:03 PDT 2020


Author: Shengchen Kan
Date: 2020-03-12T10:03:41+08:00
New Revision: ab69cd0779c529519eb7d26e0fa1b8dfb505f838

URL: https://github.com/llvm/llvm-project/commit/ab69cd0779c529519eb7d26e0fa1b8dfb505f838
DIFF: https://github.com/llvm/llvm-project/commit/ab69cd0779c529519eb7d26e0fa1b8dfb505f838.diff

LOG: [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

Added: 
    

Modified: 
    clang/lib/Headers/cldemoteintrin.h
    clang/test/CodeGen/cldemote.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Headers/cldemoteintrin.h b/clang/lib/Headers/cldemoteintrin.h
index 2413e7dea7a1..cfb951c1b4a9 100644
--- a/clang/lib/Headers/cldemoteintrin.h
+++ b/clang/lib/Headers/cldemoteintrin.h
@@ -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

diff  --git a/clang/test/CodeGen/cldemote.c b/clang/test/CodeGen/cldemote.c
index 8c7bdf539333..f5f7ad9f27ea 100644
--- a/clang/test/CodeGen/cldemote.c
+++ b/clang/test/CodeGen/cldemote.c
@@ -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);
 }


        


More information about the cfe-commits mailing list