]> granicus.if.org Git - clang/commit
ARM & AArch64: merge the semantic checking of NEON intrinsics
authorTim Northover <tnorthover@apple.com>
Wed, 19 Feb 2014 10:37:05 +0000 (10:37 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 19 Feb 2014 10:37:05 +0000 (10:37 +0000)
commit45de76ea91e590f63496f49468fa51dcf4b2ba2a
treee47d449653fdf6c922a9ac961f57319ff74ef19b
parent69ca34421886443df2def063e5029439c3abead5
ARM & AArch64: merge the semantic checking of NEON intrinsics

There are two kinds of automatically generated tests for NEON intrinsics, both
of which can be merged without adversely affecting users.

1. We check that a valid kind of __builtin_neon_XYZ overload is requested (e.g.
   we're not asking for a float32x4_t version when it only accepts integers. Since
   the __builtin_neon_XYZ intrinsics should only be used in arm_neon.h, relaxing
   this test and permitting AArch64 types for AArch32 should not cause a problem.
   The extra arm_neon.h definitions should be #ifdefed out anyway.
2. We check that intrinsics which take immediates are actually given
   compile-time constants within range. Since all NEON intrinsics should be
   backwards compatible, these tests should be identical on AArch64 and AArch32
   anyway.

This patch, therefore, merges the separate AArch64 and 32-bit checks.

rdar://problem/16035743

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201659 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/Sema.h
lib/Sema/SemaChecking.cpp
utils/TableGen/NeonEmitter.cpp