llvm-project/clang
Oliver Stannard 7aa90f5735 [ARM,AArch64] Fix __rev16l and __rev16ll intrinsics
These two intrinsics are defined in arm_acle.h.

__rev16l needs to rotate by 16 bits, bit it was actually rotating by 2 bits.
For AArch64, where long is 64 bits, this would still be wrong.

__rev16ll was incorrect, it reversed the bytes in each 32-bit word, rather than
each 16-bit halfword. The correct implementation is to apply __rev16 to the top
and bottom words of the 64-bit value.

For AArch32 targets, these get compiled down to the hardware rev16 instruction
at -O1 and above. For AArch64 targets, the 64-bit ones get compiled to two
32-bit rev16 instructions, because there is not currently a pattern for the
64-bit rev16 instruction.

Differential Revision: http://reviews.llvm.org/D14609

llvm-svn: 253211
2015-11-16 14:58:50 +00:00
..
INPUTS
bindings [libclang] Visit TypeAliasTemplateDecl 2015-11-15 13:48:32 +00:00
cmake [CMake] Set CLANG_LINKS_TO_CREATE in Apple-stage2.cmake so that we create cc and c++ links. 2015-09-18 18:11:18 +00:00
docs Mark is_destructible/is_nothrow_destructible as implemented 2015-11-14 07:21:35 +00:00
examples analyzer-plugin/MainCallChecker.cpp: s/generateSink/generateErrorNode/, corresponding to r247859. 2015-09-16 22:57:23 +00:00
include clang-format: Enable #include sorting by default. 2015-11-16 12:38:56 +00:00
lib [ARM,AArch64] Fix __rev16l and __rev16ll intrinsics 2015-11-16 14:58:50 +00:00
runtime [CMake] Fixing passthrough for variables starting with COMPILER_RT 2015-11-11 21:53:08 +00:00
test [ARM,AArch64] Fix __rev16l and __rev16ll intrinsics 2015-11-16 14:58:50 +00:00
tools clang-format: Enable #include sorting by default. 2015-11-16 12:38:56 +00:00
unittests clang-format: Enable #include sorting by default. 2015-11-16 12:38:56 +00:00
utils [analyzer] Update SATestBuild.py to enable a 'download and patch' model for projects. 2015-11-07 18:27:35 +00:00
www DR407: Rationalize how we handle tags being hidden by typedefs. Even with 2015-11-12 22:04:34 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] If 'INTERNAL_INSTALL_PREFIX' is set, use it for determining the install destination of c-index-test and the libclang headers. 2015-11-13 01:46:18 +00:00
CODE_OWNERS.TXT Change code owner for Clang Static Analyzer to Anna Zaks. 2015-11-12 01:31:27 +00:00
INSTALL.txt [docs] NFC: Fix line formatting in INSTALL.txt 2015-09-13 20:17:18 +00:00
LICENSE.TXT
Makefile [autoconf] Fixing reversed logic introduced r245304. 2015-08-18 21:23:44 +00:00
ModuleInfo.txt
NOTES.txt
README.txt

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/