diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-04-26 14:05:42 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-04-26 14:05:42 +0000 |
commit | e2ec05a62a4d14918d828294b219a909dc07bcb5 (patch) | |
tree | 927abe212f3b976a9a718446a3f9186148b04621 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 62aee14978dc02951cf2cc245bb7b0a8a7149fe4 (diff) | |
download | llvm-e2ec05a62a4d14918d828294b219a909dc07bcb5.zip llvm-e2ec05a62a4d14918d828294b219a909dc07bcb5.tar.gz llvm-e2ec05a62a4d14918d828294b219a909dc07bcb5.tar.bz2 |
[TargetLowering] fix isConstTrueVal to account for build vector truncation
Build vectors have magical truncation powers, so we have things like this:
v4i1 = BUILD_VECTOR Constant:i32<1>, Constant:i32<1>, Constant:i32<1>, Constant:i32<1>
v4i16 = BUILD_VECTOR Constant:i32<1>, Constant:i32<1>, Constant:i32<1>, Constant:i32<1>
If we don't truncate the splat node returned by getConstantSplatNode(), then we won't find
truth when ZeroOrNegativeOneBooleanContent is the rule.
Differential Revision: https://reviews.llvm.org/D32505
llvm-svn: 301408
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions