Add support for poly16 vtst and vtstq

vtst and vtstq currently support poly8 types, but they should also work on
poly16.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190925 91177308-0d34-0410-b5e6-96231b3b80d8
Recommited:
Fix for PR16752. Second commit.

PR16752: 'mode' attribute for unusual targets doesn't work properly
Description:
Troubles could be happened due to some assumptions in handleModeAttr function (see SemaDeclAttr.cpp).
For example, it assumes that 32 bit integer is 'int', while it could be 16 bit only.
Instead of asking target: 'which type do you want to use for int32_t ?' it just hardcodes general opinion. That doesn't looks pretty correct.
Please consider the next solution:
1. In Basic/TargetInfo add getIntTypeByWidth and getRealTypeByWidth methods. Methods asks target for proper type for given bit width.
2. Fix handleModeAttr according to new methods in TargetInfo.

Fixes:
1st Commit (Done): Add new methods for TargetInfo:
     getRealTypeByWidth and getIntTypeByWidth
  for ASTContext names are almost same(invokes new methods from TargetInfo):
     getIntTypeForBitwidth and getRealTypeForBitwidth

2nd Commit (Current): Fix SemaDeclAttr, handleModeAttr function.

Also test/Sema/attr-mode.c was fixed. 'XC' mode test was disabled for PPC64 machines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190926 91177308-0d34-0410-b5e6-96231b3b80d8
[ARMv8] Add builtins for CRC instructions.

Patch by Bradley Smith!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190931 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify clang-format-diff.py using new clang-format options.

clang-format's -lines parameter makes this significantly easier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190935 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator: placing another check for
'deprecated' container before doing the 'instancetype'
inference.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190943 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator: Infer property in the presense
of methods annotated with attributes. 
// rdar://14987909


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190947 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Don't even try to convert floats to booleans for now.

We now have symbols with floating-point type to make sure that
(double)x == (double)x comes out true, but we still can't do much with
these. For now, don't even bother trying to create a floating-point zero
value; just give up on conversion to bool.

PR14634, C++ edition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190953 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator: For consistency, also infer
'instancetype' for known family of methods
with related result type; such as 'init'
methods. // rdar://14987948


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190956 91177308-0d34-0410-b5e6-96231b3b80d8
Remove some dead code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190959 91177308-0d34-0410-b5e6-96231b3b80d8
Debug info: Explicitly set the DIVariable::isIndirect() flag for VLAs.
This allows us to get rid of an ugly hack in the backend.
Paired commit with LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190960 91177308-0d34-0410-b5e6-96231b3b80d8
get rid of extra parentheses.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190962 91177308-0d34-0410-b5e6-96231b3b80d8
The intrinsics should all have C linkage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190963 91177308-0d34-0410-b5e6-96231b3b80d8
clang-cl: Don't warn about overriding /MD with /MT, /Fo with another /Fo, etc.

I put in the warnings because MSVC has them, but I don't think they're very
useful.

Clang does not warn about overriding flags in general, e.g. it's perfectly
fine to have -fomit-frame-pointer followed by -fno-omit-frame-pointer.

We should focus on warning where things get confusing, such as with the
/TP and /TC options. In "clang-cl /TC a.c /TP b.cc", the user might not
realize that the /TP flag will apply to both files, and we warn about that.

Differential Revision: http://llvm-reviews.chandlerc.com/D1718

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190964 91177308-0d34-0410-b5e6-96231b3b80d8
Fix closing brace around ifdef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190965 91177308-0d34-0410-b5e6-96231b3b80d8
Remove a bogus diagnostic preventing static data member templates from being
defined with no initializer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190970 91177308-0d34-0410-b5e6-96231b3b80d8
Fix CharByteWidth assertion in LiteralSupport.

Patch by Eelis van der Weegen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190971 91177308-0d34-0410-b5e6-96231b3b80d8
Add specific warning flags for GNU ext in Sema.

This patch adds the following, more specific warning flags:

gnu-anonymous-struct
gnu-compound-literal-initializer
gnu-empty-struct
gnu-flexible-array-initializer
gnu-flexible-array-union-member
gnu-folding-constant
redeclared-class-member
gnu-redeclared-enum
gnu-union-cast
gnu-variable-sized-type-not-at-end

Patch by Peter Lewis.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190972 91177308-0d34-0410-b5e6-96231b3b80d8
Disabling sse2 should disable aes and pclmul support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190977 91177308-0d34-0410-b5e6-96231b3b80d8
Fix ifdef ordering at the end of Intrin.h from r190965

Test that intrin.h at least parses in C++ TUs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190978 91177308-0d34-0410-b5e6-96231b3b80d8
Avoid including <stdlib.h> in the intrin.h test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190979 91177308-0d34-0410-b5e6-96231b3b80d8