[AArch64] Identify SAD pattern
authorVinay Madhusudan <vinay@compilertree.com>
Tue, 13 Oct 2020 09:48:30 +0000 (15:18 +0530)
committerVinay Madhusudan <vinay@compilertree.com>
Tue, 13 Oct 2020 10:20:54 +0000 (15:50 +0530)
commit37dce7475b2b97f27f65a80524a8ad8342e6cf7e
tree47ed3a654386ccd9059b93e65964a7d03e6231af
parent25a8881b724abf7251a9278e72224af7e82cb9c2
[AArch64] Identify SAD pattern

(ABS (SUB (EXTEND a), (EXTEND b))) to ZERO_EXTEND((UABD a, b))
(ABS (SUB (SIGN_EXTEND a), (SIGN_EXTEND b))) to ZERO_EXTEND((SABD a, b))

This partially solves the bug: https://bugs.llvm.org/show_bug.cgi?id=46888
Meta ticket: https://bugs.llvm.org/show_bug.cgi?id=46929

Differential Revision: https://reviews.llvm.org/D88742
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/arm64-vabs.ll