llvm-project/llvm/test/Transforms/CodeGenPrepare
Sanjay Patel f490ca76b0 [x86][CGP] enable target hook to sink funnel shift intrinsic's splatted shift amount
SDAG suffers when it can't see that a funnel operand is a splat value
(due to single-basic-block visibility), so invert the normal loop
hoisting rules to move a splat op closer to its use.

This would be part 1 of an enhancement similar to D63233.

This is needed to re-fix PR37426:
https://bugs.llvm.org/show_bug.cgi?id=37426
...because we got better at canonicalizing IR to funnel shift intrinsics.

The existing CGP code for shift opcodes is likely overstepping what it was
intended to do, so that will be fixed in a follow-up.

Differential Revision: https://reviews.llvm.org/D79718
2020-05-12 18:40:40 -04:00
..
AArch64 Recommit "[PatternMatch] Match XOR variant of unsigned-add overflow check." 2020-02-23 18:33:18 +00:00
AMDGPU AMDGPU: Don't assert on unknown address spaces 2020-05-08 12:57:27 -04:00
ARM [ARM] Replace arm vendor with none. NFC 2020-04-22 18:19:35 +01:00
Mips Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
NVPTX Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
PowerPC [CodeGen] Fix the computation of the alignment of split stores. 2020-02-12 10:37:30 +01:00
SPARC [TargetLower] Update shouldFormOverflowOp check if math is used. 2020-02-19 11:28:33 +01:00
X86 [x86][CGP] enable target hook to sink funnel shift intrinsic's splatted shift amount 2020-05-12 18:40:40 -04:00
dom-tree.ll [CodeGenPrepare][test] Add REQUIRES to two tests after D73754 2020-02-02 09:53:17 -08:00
sink-shift-and-trunc.ll [CodeGenPrepare] Fix use-after-free 2019-08-16 23:10:34 +00:00
skip-merging-case-block.ll [CodeGenPrepare][test] Add REQUIRES to two tests after D73754 2020-02-02 09:53:17 -08:00