FailedChanges

Summary

  1. [NFC][compiler-rt] Factor out __div[sdt]i3 and __mod[dt]i3 implementations (details)
  2. [CVP] Regenerate test checks (NFC) (details)
  3. [SLP] make commutative check apply only to binops; NFC (details)
  4. [x86] add tests for multi-use fast sqrt/recip; NFC (details)
  5. [AArch64] add tests for multi-use fast sqrt/recip; NFC (details)
  6. [DAGCombiner] skip reciprocal divisor optimization for x/sqrt(x) (details)
Commit 11cf6346fd49a54cf1f0a8fbf5dee0dab0f4f217 by atrosinenko
[NFC][compiler-rt] Factor out __div[sdt]i3 and __mod[dt]i3 implementations

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D86400
The file was modifiedcompiler-rt/lib/builtins/int_div_impl.inc
The file was modifiedcompiler-rt/lib/builtins/modti3.c
The file was modifiedcompiler-rt/lib/builtins/divdi3.c
The file was modifiedcompiler-rt/lib/builtins/divti3.c
The file was modifiedcompiler-rt/lib/builtins/moddi3.c
The file was modifiedcompiler-rt/lib/builtins/divsi3.c
Commit cb392c870d12eb520f84c8b7eb4f57e37483baed by nikita.ppv
[CVP] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/basic.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/range.ll
Commit af4581e8ab1648ff4df0b7fe3769160e6b9f2617 by spatel
[SLP] make commutative check apply only to binops; NFC

As discussed in D86798, it's not clear if the caller code
works with a more liberal definition of "commutative" that
includes intrinsics like min/max. This makes the binop
restriction (current functionality is unchanged) explicit
until the code is audited/tested.
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit ed5fe00e72b0c6dbb71c692cc6a932308b86179d by spatel
[x86] add tests for multi-use fast sqrt/recip; NFC
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath.ll
Commit 7692cb1a6fd1b3978855f637d4f09da035085c90 by spatel
[AArch64] add tests for multi-use fast sqrt/recip; NFC
The file was modifiedllvm/test/CodeGen/AArch64/sqrt-fastmath.ll
Commit 716e35a0cf53e85a5fddc7ff86b79a751b1b2040 by spatel
[DAGCombiner] skip reciprocal divisor optimization for x/sqrt(x)

In general, we probably want to try the multi-use reciprocal
transform before sqrt transforms, but x/sqrt(x) is a special-case
because that will always reduce to plain sqrt(x) or an estimate.

The AArch64 tests show that the transform is limited by TLI
hook to patterns where there are 3 or more uses of the divisor.
So this change can result in an extra division compared to
what we had, but that's the intended behvior based on the
current setting of that hook.
The file was modifiedllvm/test/CodeGen/AArch64/sqrt-fastmath.ll
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp