llvm-project/clang/lib
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
..
ARCMigrate Refactor: Simplify boolean conditional return statements in lib/ARCMigrate 2015-11-06 01:26:37 +00:00
AST [modules] Allow "redefinition" of typedef of anon tag from unimported submodule 2015-11-14 03:26:14 +00:00
ASTMatchers [AST] Re-add TypeLocs and NestedNameSpecifierLocs to the ParentMap. 2015-10-23 09:04:55 +00:00
Analysis [analyzer] Handle calling ObjC super method from inside C++ lambda. 2015-11-15 17:48:22 +00:00
Basic [ARM] Pass in the architecture to TargetParser to cope with API change 2015-11-16 11:16:36 +00:00
CodeGen [CGDebugInfo] Set the size and align for reference types 2015-11-16 09:04:13 +00:00
Driver Update for the gnu flavor being renamed to old-gnu. 2015-11-16 09:12:12 +00:00
Edit Replace double negation of !FileID.isInvalid() with FileID.isValid(). 2015-10-03 10:46:20 +00:00
Format clang-format: Enable #include sorting by default. 2015-11-16 12:38:56 +00:00
Frontend [Frontend] Rangify for loop. NFC. 2015-11-16 00:59:34 +00:00
FrontendTool Provide a BuryPointer for unique_ptrs. 2014-08-29 16:53:14 +00:00
Headers [ARM,AArch64] Fix __rev16l and __rev16ll intrinsics 2015-11-16 14:58:50 +00:00
Index Roll-back r250822. 2015-10-20 13:23:58 +00:00
Lex Use %select to merge similar diagnostics. NFC 2015-11-14 02:09:55 +00:00
Parse Fix a layering oddity by passing Sema to DeclSpec::Finish instead of DiagnosticsEngine and Preprocessor. Everything the preprocessor was being used for can be acquired from Sema. 2015-11-15 03:32:11 +00:00
Rewrite Roll-back r250822. 2015-10-20 13:23:58 +00:00
Sema [Sema] Implement several unary type traits more accurately 2015-11-16 06:58:51 +00:00
Serialization Add support for GCC's '__auto_type' extension, per the GCC manual: 2015-11-11 02:02:15 +00:00
StaticAnalyzer [analyzer] Refer to capture field to determine if capture is reference. 2015-11-15 03:07:17 +00:00
Tooling Make ArgumentAdjuster aware of the current file being processed. 2015-11-05 02:19:53 +00:00
CMakeLists.txt Fix build with various feature flag combinations 2014-07-14 22:17:22 +00:00
Makefile Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00