llvm-project/llvm/test
Matthias Braun e48484c64f InstCombineSimplifyDemanded: Remove nsw/nuw flags when optimizing demanded bits
When optimizing demanded bits of the operands of an Add we have to
remove the nsw/nuw flags as we have no guarantee anymore that we don't
wrap.  This is legal here because the top bit is not demanded.  In fact
this operaion was already performed but missed in the case of an Add
with a constant on the right side.  To fix this this patch refactors the
code to unify the code paths in SimplifyDemandedUseBits() handling of
Add/Sub:

- The transformation of Add->Or is removed from the simplify demand
  code because the equivalent transformation exists in
  InstCombiner::visitAdd()
- KnownOnes/KnownZero are not adjusted for Add x, C anymore as
  computeKnownBits() already performs these computations.
- The simplification of the operands is unified. In this new version
  constant on the right side of a Sub are shrunk now as I could not find
  a reason why not to do so.
- The special case for clearing nsw/nuw in ShrinkDemandedConstant() is
  not necessary anymore as the caller does that already.

Differential Revision: http://reviews.llvm.org/D9415

llvm-svn: 236269
2015-04-30 22:05:30 +00:00
..
Analysis [getUnderlyingOjbects] Analyze loop PHIs further to remove false positives 2015-04-23 20:09:20 +00:00
Assembler IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Bindings IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Bitcode Don't overflow GCTable 2015-04-30 04:09:41 +00:00
BugPoint IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
CodeGen Fix comment in test. NFC. 2015-04-30 21:22:28 +00:00
DebugInfo IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
ExecutionEngine [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
Feature [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
FileCheck FileCheck: Add CHECK-SAME 2015-02-26 04:53:00 +00:00
Instrumentation IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Integer [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
JitListener IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
LTO Revert changes to LTO test case since llvm-lto can't handle textual IR inputs 2015-04-24 18:13:27 +00:00
Linker IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
MC AArch64: add BFC alias for the BFI/BFM instructions. 2015-04-30 18:28:58 +00:00
Object Support arm32 R_ARM_V4BX relocation format 2015-04-22 15:26:43 +00:00
Other [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
SymbolRewriter SymbolRewriter: allow rewriting with comdats 2015-01-27 22:57:39 +00:00
TableGen Add support for v1i128 type. 2015-04-17 16:11:05 +00:00
Transforms InstCombineSimplifyDemanded: Remove nsw/nuw flags when optimizing demanded bits 2015-04-30 22:05:30 +00:00
Unit
Verifier IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
YAMLParser
tools For llvm-objdump, with the -archive-headers and -macho options, use the -non-verbose 2015-04-30 20:30:42 +00:00
.clang-format
CMakeLists.txt test: Fix the dependencies for the check-llvm-* targets 2015-03-25 08:07:47 +00:00
Makefile test: Make a start on a test suite for libLTO. 2015-03-19 23:55:38 +00:00
Makefile.tests
TestRunner.sh
lit.cfg Tell lit.cfg about more Windows triples. 2015-03-20 22:08:40 +00:00
lit.site.cfg.in test: Make a start on a test suite for libLTO. 2015-03-19 23:55:38 +00:00