SuccessChanges

Summary

  1. [SelectionDAG][X86][ARM] Teach ExpandIntRes_ABS to use sra+add+xor expansion when ADDCARRY is supported. (details)
  2. [SCCP] Compute ranges for supported intrinsics (details)
  3. [KnownBits] Avoid some copies (NFC) (details)
Commit da79b1eecc65171f6ca0cda9b4f1970bd1503c17 by craig.topper
[SelectionDAG][X86][ARM] Teach ExpandIntRes_ABS to use sra+add+xor expansion when ADDCARRY is supported.

Rather than using SELECT instructions, use SRA, UADDO/ADDCARRY and
XORs to expand ABS. This is the multi-part version of the sequence
we use in LegalizeDAG.

It's also the same as the Custom sequence uses for i64 on 32-bit
and i128 on 64-bit. So we can remove the X86 customization.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D87215
The file was modifiedllvm/test/CodeGen/Thumb2/mve-abs.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/iabs.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/abs.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)
Commit 9fb46a452d4e5666828c95610ceac8dcd9e4ce16 by nikita.ppv
[SCCP] Compute ranges for supported intrinsics

For intrinsics supported by ConstantRange, compute the result range
based on the argument ranges. We do this independently of whether
some or all of the input ranges are full, as we can often still
constrain the result in some way.

Differential Revision: https://reviews.llvm.org/D87183
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/intrinsics.ll (diff)
Commit ddab4cd83ea31141aaada424dccf94278482ee88 by nikita.ppv
[KnownBits] Avoid some copies (NFC)

These lambdas don't need copies, use const reference.
The file was modifiedllvm/lib/Support/KnownBits.cpp (diff)