]> granicus.if.org Git - clang/commit
Reimplement the bittest intrinsic family as builtins with inline asm
authorReid Kleckner <rnk@google.com>
Tue, 5 Jun 2018 01:33:40 +0000 (01:33 +0000)
committerReid Kleckner <rnk@google.com>
Tue, 5 Jun 2018 01:33:40 +0000 (01:33 +0000)
commitce9d274375110045b504004b133b54711112966d
treee0bb4d38b3e70678b04c0670949bb9bcf6a6e88e
parentdb0407e1cac00368f599c8ee19cdb86390d696ff
Reimplement the bittest intrinsic family as builtins with inline asm

We need to implement _interlockedbittestandset as a builtin for
windows.h, so we might as well do the whole family. It reduces code
duplication anyway.

Fixes PR33188, a long standing bug in our bittest implementation
encountered by Chakra.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333978 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Builtins.def
lib/CodeGen/CGBuiltin.cpp
lib/Headers/intrin.h
test/CodeGen/bittest-intrin.c [new file with mode: 0644]
test/CodeGen/ms-intrinsics-other.c
test/CodeGen/ms-intrinsics.c