llvm-project/llvm/test/CodeGen
Simon Pilgrim 95b8d9bbf8 [SelectionDAG] computeKnownBits - support constant pool values from target
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
2019-05-24 10:03:11 +00:00
..
AArch64 GlobalISel: support swifterror attribute on AArch64. 2019-05-24 08:40:13 +00:00
AMDGPU AMDGPU: Correct maximum possible private allocation size 2019-05-23 19:38:14 +00:00
ARC
ARM [ARM][CGP] Clear SafeWrap before each search 2019-05-23 07:46:39 +00:00
AVR Add TargetLoweringInfo hook for explicitly setting the ABI calling convention endianess 2019-05-21 06:38:02 +00:00
BPF [BPF] emit BTF sections only if debuginfo available 2019-05-13 05:00:23 +00:00
Generic [IR] allow fast-math-flags on select of FP values 2019-05-22 15:50:46 +00:00
Hexagon [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
Inputs
Lanai [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00
MIR [AMDGPU] gfx1010 tests. NFC. 2019-05-13 19:30:06 +00:00
MSP430 [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00
Mips [mips] Always check that `shift and add` optimization is efficient. 2019-05-24 08:39:40 +00:00
NVPTX SelectionDAG: accommodate atomic floating stores. 2019-05-10 11:23:04 +00:00
PowerPC [Power9] Add a specific heuristic to schedule the addi before the load 2019-05-24 05:30:09 +00:00
RISCV [RISCV][NFC] Add nounwind attribute to functions missing it in test/CodeGen/RISCV 2019-05-23 12:43:13 +00:00
SPARC [TargetLowering] Extend bool args to inline-asm according to getBooleanType 2019-05-22 16:16:15 +00:00
SystemZ [TargetLowering] Extend bool args to inline-asm according to getBooleanType 2019-05-22 16:16:15 +00:00
Thumb [TargetLowering] Extend bool args to inline-asm according to getBooleanType 2019-05-22 16:16:15 +00:00
Thumb2 [TargetLowering] Extend bool args to inline-asm according to getBooleanType 2019-05-22 16:16:15 +00:00
WebAssembly [WebAssembly] Expand more SIMD float ops 2019-05-24 00:15:04 +00:00
WinCFGuard
WinEH
X86 [SelectionDAG] computeKnownBits - support constant pool values from target 2019-05-24 10:03:11 +00:00
XCore [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00