summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/combine-bitreverse.ll
Commit message (Collapse)AuthorAgeFilesLines
* [SelectionDAG] computeKnownBits - support constant pool values from targetSimon Pilgrim2019-05-241-12/+6
| | | | | | | | | | | | | | | | This patch adds the overridable TargetLowering::getTargetConstantFromLoad function which allows targets to return any constant value loaded by a LoadSDNode node - only X86 makes use of this so far but everything should be in place for other targets. computeKnownBits then uses this function to improve codegen, notably vector code after legalization. A future commit will do the same for ComputeNumSignBits but computeKnownBits sees the bigger benefit. This required a couple of fixes: * SimplifyDemandedBits must early-out for getTargetConstantFromLoad cases to prevent infinite loops of constant regeneration (similar to what we already do for BUILD_VECTOR). * Fix a DAGCombiner::visitTRUNCATE issue as we had trunc(shl(v8i32),v8i16) <-> shl(trunc(v8i16),v8i32) infinite loops after legalization on AVX512 targets. Differential Revision: https://reviews.llvm.org/D61887 llvm-svn: 361620
* [DAG] Add SimplifyDemandedBits support for BITREVERSESimon Pilgrim2019-05-111-2/+0
| | | | | | Pulled out of D58017 while I continue to investigate the BSWAP regression on PPC llvm-svn: 360534
* [X86] Add basic bitreverse/bswap combine testsSimon Pilgrim2019-02-101-0/+99
Shows missing SimplifyDemandedBits support llvm-svn: 353647
OpenPOWER on IntegriCloud