Files
clang-p2996/llvm/test/CodeGen/AMDGPU
Bjorn Pettersson f97b29be88 [DAGCombiner] Combine OR as ADD when no common bits are set
Summary:
The DAGCombiner is rewriting (canonicalizing) an ISD::ADD
with no common bits set in the operands as an ISD::OR node.

This could sometimes result in "missing out" on some
combines that normally are performed for ADD. To be more
specific this could happen if we already have rewritten an
ADD into OR, and later (after legalizations or combines)
we expose patterns that could have been optimized if we
had seen the OR as an ADD (e.g. reassociations based on ADD).

To make the DAG combiner less sensitive to if ADD or OR is
used for these "no common bits set" ADD/OR operations we
now apply most of the ADD combines also to an OR operation,
when value tracking indicates that the operands have no
common bits set.

Reviewers: spatel, RKSimon, craig.topper, kparzysz

Reviewed By: spatel

Subscribers: arsenm, rampitec, lebedev.ri, jvesely, nhaehnle, hiraditya, javed.absar, llvm-commits

Tags: #llvm

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

llvm-svn: 358965
2019-04-23 10:01:08 +00:00
..
2019-03-29 17:35:56 +00:00
2019-04-09 16:13:53 +00:00
2019-02-08 11:59:48 +00:00
2019-03-19 15:50:24 +00:00
2018-04-30 19:08:16 +00:00
2019-03-21 12:01:21 +00:00
2019-03-29 17:35:56 +00:00
2019-03-29 17:35:56 +00:00
2019-03-29 17:35:56 +00:00
2019-03-29 17:35:56 +00:00
2019-03-29 17:35:56 +00:00
2019-03-12 21:02:54 +00:00
2019-03-12 21:02:54 +00:00
2018-08-31 22:43:36 +00:00
2019-03-21 12:01:21 +00:00
2019-03-19 15:50:24 +00:00
2019-03-19 15:50:24 +00:00
2018-06-27 15:33:33 +00:00
2018-06-27 15:33:33 +00:00
2019-03-21 12:01:21 +00:00

+==============================================================================+
| How to organize the lit tests                                                |
+==============================================================================+

- If you write a test for matching a single DAG opcode or intrinsic, it should
  go in a file called {opcode_name,intrinsic_name}.ll (e.g. fadd.ll)

- If you write a test that matches several DAG opcodes and checks for a single
  ISA instruction, then that test should go in a file called {ISA_name}.ll (e.g.
  bfi_int.ll

- For all other tests, use your best judgement for organizing tests and naming
  the files.

+==============================================================================+
| Naming conventions                                                           |
+==============================================================================+

- Use dash '-' and not underscore '_' to separate words in file names, unless
  the file is named after a DAG opcode or ISA instruction that has an
  underscore '_' in its name.