Author: gbuella Date: Thu Apr 12 11:42:02 2018 New Revision: 329937 URL: http://llvm.org/viewvc/llvm-project?rev=329937&view=rev Log: [X86] Introduce wbinvd intrinsic
A previously missing intrinsic for an old instruction. Reviewers: craig.topper, echristo Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D45311 Added: cfe/trunk/test/CodeGen/builtin-wbinvd.c (with props) Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def cfe/trunk/lib/Headers/ia32intrin.h Modified: cfe/trunk/include/clang/Basic/BuiltinsX86.def URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsX86.def?rev=329937&r1=329936&r2=329937&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/BuiltinsX86.def (original) +++ cfe/trunk/include/clang/Basic/BuiltinsX86.def Thu Apr 12 11:42:02 2018 @@ -679,7 +679,8 @@ TARGET_BUILTIN(__builtin_ia32_clflushopt //CLWB TARGET_BUILTIN(__builtin_ia32_clwb, "vvC*", "", "clwb") -//WBNOINVD +//WB[NO]INVD +TARGET_BUILTIN(__builtin_ia32_wbinvd, "v", "", "") TARGET_BUILTIN(__builtin_ia32_wbnoinvd, "v", "", "wbnoinvd") // ADX Modified: cfe/trunk/lib/Headers/ia32intrin.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/ia32intrin.h?rev=329937&r1=329936&r2=329937&view=diff ============================================================================== --- cfe/trunk/lib/Headers/ia32intrin.h (original) +++ cfe/trunk/lib/Headers/ia32intrin.h Thu Apr 12 11:42:02 2018 @@ -70,4 +70,9 @@ __rdtscp(unsigned int *__A) { #define _rdpmc(A) __rdpmc(A) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) +_wbinvd(void) { + return __builtin_ia32_wbinvd(); +} + #endif /* __IA32INTRIN_H */ Added: cfe/trunk/test/CodeGen/builtin-wbinvd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtin-wbinvd.c?rev=329937&view=auto ============================================================================== --- cfe/trunk/test/CodeGen/builtin-wbinvd.c (added) +++ cfe/trunk/test/CodeGen/builtin-wbinvd.c Thu Apr 12 11:42:02 2018 @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 %s -ffreestanding -triple=x86_64-unknown-unknown -emit-llvm -o - -Wall -Werror | FileCheck %s +// RUN: %clang_cc1 %s -ffreestanding -triple=i386-unknown-unknown -emit-llvm -o - -Wall -Werror | FileCheck %s + +#include <x86intrin.h> + +void test_wbinvd(void) { + //CHECK-LABEL: @test_wbinvd + //CHECK: call void @llvm.x86.wbinvd() + _wbinvd(); +} Propchange: cfe/trunk/test/CodeGen/builtin-wbinvd.c ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cfe/trunk/test/CodeGen/builtin-wbinvd.c ------------------------------------------------------------------------------ svn:keywords = Author Date Id Rev URL Propchange: cfe/trunk/test/CodeGen/builtin-wbinvd.c ------------------------------------------------------------------------------ svn:mime-type = text/plain _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits