llvm-project/llvm/test/Transforms/PhaseOrdering
Anton Afanasyev cfb6dfcbd1 [AggressiveInstCombine] Add logical shift right instr to `TruncInstCombine` DAG
Add `lshr` instruction to the DAG post-dominated by `trunc`, allowing
TruncInstCombine to reduce bitwidth of expressions containing
these instructions.

We should be shifting by less than the target bitwidth.
Also it is sufficient to require that all truncated bits
of the value-to-be-shifted are zeros: https://alive2.llvm.org/ce/z/_LytbB

Alive2 variable-length proof:
https://godbolt.org/z/1srE1aqzf => s/32/8/ => https://alive2.llvm.org/ce/z/StwPia

Part of https://reviews.llvm.org/D107766

Differential Revision: https://reviews.llvm.org/D108201
2021-08-18 22:20:58 +03:00
..
AArch64 [PhaseOrdering] Add test for missed vectorization with vector::at calls. 2021-08-16 09:43:30 +01:00
ARM [InstCombine] Extend sadd.sat tests to include min/max patterns. NFC 2021-08-14 22:48:10 +01:00
X86 [AggressiveInstCombine] Add logical shift right instr to `TruncInstCombine` DAG 2021-08-18 22:20:58 +03:00
2010-03-22-empty-baseclass.ll
PR6627.ll
assume-explosion.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
basic.ll
bitfield-bittests.ll
d83507-knowledge-retention-bug.ll [SimplifyCFG] Look for control flow changes instead of side effects. 2021-05-03 13:32:22 -07:00
expect.ll [PassManager][PhaseOrdering] lower expects before running simplifyCFG 2021-04-12 15:07:53 -04:00
gdce.ll
globalaa-retained.ll
inlining-alignment-assumptions.ll [LLVM IR] Allow volatile stores to trap. 2021-07-26 10:51:00 -07:00
instcombine-sroa-inttoptr.ll
lifetime-sanitizer.ll
loop-rotation-vs-common-code-hoisting.ll [NewPM] Remove SpeculateAroundPHIs pass 2021-06-15 20:35:55 +03:00
lto-licm.ll [PhaseOrdering] add test to show unintended code sinking; NFC 2021-04-19 17:30:23 -04:00
min-max-abs-cse.ll
minmax.ll
openmp-opt-module.ll [OpenMP] Create custom state machines for generic target regions 2021-07-10 17:57:08 -05:00
partialord-ule.ll [SimplifyCFG] Handle two equal cases in switch to select 2021-04-04 17:27:28 +02:00
pr32544.ll [PhaseOrdering] Add PR32544 test coverage 2021-04-25 11:05:32 +01:00
pr36760.ll [PhaseOrdering] Add second test case for PR36760 2021-04-20 17:27:24 +01:00
pr39282.ll
pr44461-br-to-switch-rotate.ll
pr45682.ll [PhaseOrdering] Add test case for PR45682 2021-04-21 15:07:00 +01:00
pr45687.ll [PhaseOrdering] Add PR45687 test coverage 2021-04-06 10:31:42 +01:00
reassociate-after-unroll.ll Fix ppc build bot after 239a6181 2021-03-08 10:00:56 -08:00
rotate.ll
scev-custom-dl.ll [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
scev.ll
simplifycfg-options.ll
two-shifts-by-sext.ll
unsigned-multiply-overflow-check.ll [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
vector-trunc-inseltpoison.ll
vector-trunc.ll