Go to file
Simon Pilgrim 75a697a17e [DAGCombiner] (REAPPLIED) Add vector demanded elements support to computeKnownBits
Currently computeKnownBits returns the common known zero/one bits for all elements of vector data, when we may only be interested in one/some of the elements.

This patch adds a DemandedElts argument that allows us to specify the elements we actually care about. The original computeKnownBits implementation calls with a DemandedElts demanding all elements to match current behaviour. Scalar types set this to 1.

The approach was found to be easier than trying to add a per-element known bits solution, for a similar usefulness given the combines where computeKnownBits is typically used.

I've only added support for a few opcodes so far (the ones that have proven straightforward to test), all others will default to demanding all elements but can be updated in due course.

DemandedElts support could similarly be added to computeKnownBitsForTargetNode in a future commit.

This looked like this had caused compile time regressions on some buildbots (and was reverted in rL285381), but appears to have just been a harmless bystander!

Differential Revision: https://reviews.llvm.org/D25691

llvm-svn: 285494
2016-10-29 11:29:39 +00:00
clang [X86][AVX512][Clang][Intrinsics][reduce] Adding missing reduce (max|min) intrinsics to Clang . 2016-10-29 10:29:20 +00:00
clang-tools-extra [include-fixer] Make error message sound less like clang crashed. 2016-10-28 13:00:49 +00:00
compiler-rt [asan] Set the darwin deployment target for the dead-strip test 2016-10-29 00:27:07 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Provide vstore_half helper to workaround clc restrictions 2016-09-21 20:15:55 +00:00
libcxx Revert "Added 'inline' attribute to basic_string's destructor" 2016-10-29 00:50:02 +00:00
libcxxabi Get libc++abi building with LLVM_ENABLE_MODULES 2016-10-25 20:07:49 +00:00
libunwind [libunwind] Add support for Fuchsia 2016-10-23 21:48:47 +00:00
lld Attempt to fix a buildbot really this time. 2016-10-29 01:28:06 +00:00
lldb Limit LLDB_EXPORT_ALL_SYMBOLS to lldb symbols 2016-10-29 00:29:15 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm [DAGCombiner] (REAPPLIED) Add vector demanded elements support to computeKnownBits 2016-10-29 11:29:39 +00:00
openmp Fixed a memory leak related to task dependencies. 2016-10-27 11:43:07 +00:00
parallel-libs [Acxxel] Remove setActiveDeviceForThread 2016-10-28 00:54:02 +00:00
polly [ScopDetect] Use SCEVRewriteVisitor to simplify SCEVRemoveSMax rewriter 2016-10-29 06:19:34 +00:00