[AArch64][SelectionDAG] Supports unpklo/hi instructions to reduce the number of loads
authorzhongyunde <zhongyunde@huawei.com>
Mon, 21 Mar 2022 15:14:15 +0000 (23:14 +0800)
committerzhongyunde <zhongyunde@huawei.com>
Mon, 21 Mar 2022 15:47:33 +0000 (23:47 +0800)
commit828b89bc0bb13177c48329ca866fd357e206fbcb
tree5258e2e2ff46d975a3c161d4773a17e842f944d5
parent195de3dd6c86f01956f2d1f87b2b7dd25f8c0aed
[AArch64][SelectionDAG] Supports unpklo/hi instructions to reduce the number of loads

Trying to reduce the number of masked loads in favour of more unpklo/hi
instructions. Both ISD::ZEXTLOAD and ISD::SEXTLOAD are supported to extensions
from legal types.

Both of normal and masked loads test cases added to guard compile crash.

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D120953
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-intrinsics-ldst-ext.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/sve-intrinsics-mask-ldst-ext.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/sve-masked-ldst-zext.ll