llvm-project/llvm/test/CodeGen
Simon Pilgrim a56f2822d0 [SelectionDAG] Handle unary SelectPatternFlavor for ABS case in SelectionDAGBuilder::visitSelect
These changes are related to PR37743 and include:

    SelectionDAGBuilder::visitSelect handles the unary SelectPatternFlavor::SPF_ABS case to build ABS node.

    Delete the redundant recognizer of the integer ABS pattern from the DAGCombiner.

    Add promoting the integer ABS node in the LegalizeIntegerType.

    Expand-based legalization of integer result for the ABS nodes.

    Expand-based legalization of ABS vector operations.

    Add some integer abs testcases for different typesizes for Thumb arch

    Add the custom ABS expanding and change the SAD pattern recognizer for X86 arch: The i64 result of the ABS is expanded to:
        tmp = (SRA, Hi, 31)
        Lo = (UADDO tmp, Lo)
        Hi = (XOR tmp, (ADDCARRY tmp, hi, Lo:1))
        Lo = (XOR tmp, Lo)

    The "detectZextAbsDiff" function is changed for the recognition of pattern with the ABS node. Given a ABS node, detect the following pattern:
        (ABS (SUB (ZERO_EXTEND a), (ZERO_EXTEND b))).

    Change integer abs testcases for codegen with the ABS node support for AArch64.
        Indicate that the ABS is legal for the i64 type when the NEON is supported.
        Change the integer abs testcases to show changing of codegen.

    Add combine and legalization of ABS nodes for Thumb arch.

    Extend 'matchSelectPattern' to recognize the ABS patterns with ICMP_SGE condition.

For discussion, see https://bugs.llvm.org/show_bug.cgi?id=37743

Patch by: @ikulagin (Ivan Kulagin)

Differential Revision: https://reviews.llvm.org/D49837

llvm-svn: 356468
2019-03-19 16:24:55 +00:00
..
AArch64 [SelectionDAG] Handle unary SelectPatternFlavor for ABS case in SelectionDAGBuilder::visitSelect 2019-03-19 16:24:55 +00:00
AMDGPU [AMDGPU] Add buffer/load 8/16 bit overloaded intrinsics 2019-03-19 16:07:00 +00:00
ARC
ARM [ARM] Add MachineVerifier logic for some Thumb1 instructions. 2019-03-15 21:44:49 +00:00
AVR [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00
BPF [BPF] Add BTF Var and DataSec Support 2019-03-16 15:36:31 +00:00
Generic [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
Hexagon [Hexagon] Remove icmp undef from reduced tests 2019-03-15 15:07:44 +00:00
Inputs
Lanai
MIR MIR: Allow targets to serialize MachineFunctionInfo 2019-03-14 22:54:43 +00:00
MSP430 [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00
Mips [MIPS GlobalISel] Improve selection of constants 2019-03-15 07:07:50 +00:00
NVPTX [Codegen] fix typos in test case 2019-03-02 08:03:59 +00:00
PowerPC [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00
RISCV [RISCV] Extend test/CodeGen/RISCV/callee-saved-* to test getCalleePreservedRegs 2019-03-14 08:17:44 +00:00
SPARC [SPARC] Regenerate label test for D59363 2019-03-15 11:24:17 +00:00
SystemZ [SystemZ] Remove icmp undef from reduced tests 2019-03-18 13:55:28 +00:00
Thumb [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00
Thumb2 [ARM] Check that CPSR does not have other uses 2019-03-17 21:36:15 +00:00
WebAssembly [WebAssembly] Improve readability of irreducibility tests 2019-03-19 05:10:39 +00:00
WinCFGuard
WinEH Fix invalid target triples in tests. (NFC) 2019-03-04 23:37:41 +00:00
X86 [X86] Use relocImm in the ROL8ri/ROL16ri/ROL32ri/ROL64ri patterns to be consistent with the ROR patterns. 2019-03-18 20:43:15 +00:00
XCore [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00