[DAGCombiner] fold or (xor x, y),? patterns
authorchenglin.bi <chenglin.bi@linaro.org>
Wed, 23 Nov 2022 01:27:26 +0000 (09:27 +0800)
committerchenglin.bi <chenglin.bi@linaro.org>
Wed, 23 Nov 2022 01:28:10 +0000 (09:28 +0800)
commitcdb7b804f665f4d250f6bad3941bcea68024e0a7
tree42d2c295d8119dea82ca7fe30887ea8cdfc785ea
parent987b49395c604c794bee4439af4d3a47b4b58276
[DAGCombiner] fold or (xor x, y),? patterns

or (xor x, y), x --> or x, y
or (xor x, y), y --> or x, y
or (xor x, y), (and x, y) --> or x, y
or (xor x, y), (or x, y) --> or x, y

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D138401
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/AMDGPU/fshl.ll
llvm/test/CodeGen/AMDGPU/xor3-i1-const.ll
llvm/test/CodeGen/X86/avx512-mask-op.ll
llvm/test/CodeGen/X86/avx512bw-mask-op.ll
llvm/test/CodeGen/X86/avx512dq-mask-op.ll
llvm/test/CodeGen/X86/combine-sra-load.ll