[PATCH] D55677: [Builltins][X86] Provide implementations of __lzcnt16, __lzcnt, __lzcnt64 for MS compatibility. Remove declarations from intrin.h and implementations from lzcntintrin.h

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 13 14:49:40 PST 2018


craig.topper created this revision.
craig.topper added a reviewer: rnk.

intrin.h had forward declarations for these and lzcntintrin.h had implementations that were only available with -mlzcnt or a -march that supported the lzcnt feature. But the 32-bit version was misnamed in lzcntrin.h

This patch provides an independent implementation for MS that doesn't rely on the X86 feature flag.

Fixes PR40014


https://reviews.llvm.org/D55677

Files:
  include/clang/Basic/Builtins.def
  lib/CodeGen/CGBuiltin.cpp
  lib/Headers/intrin.h
  lib/Headers/lzcntintrin.h
  test/CodeGen/lzcnt-builtins.c
  test/CodeGen/ms-intrinsics-other.c
  test/Headers/x86intrin-2.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55677.178140.patch
Type: text/x-patch
Size: 8698 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181213/d90d9bfa/attachment.bin>


More information about the cfe-commits mailing list