[AArch64] Combine Trunc(DUP) -> DUP
authorDavid Green <david.green@arm.com>
Wed, 21 Dec 2022 14:59:59 +0000 (14:59 +0000)
committerDavid Green <david.green@arm.com>
Wed, 21 Dec 2022 14:59:59 +0000 (14:59 +0000)
commit3e65ad7482e9e612abcc115f8fb2ed379fcad612
tree7fabef219acca8f29f0a72513bc74e22c9eb0d04
parent79068275e7c99dfcc1bf17421b591312f775fa16
[AArch64] Combine Trunc(DUP) -> DUP

This adds a simple fold of TRUNCATE(AArch64ISD::DUP) -> AArch64ISD::DUP,
which can help generate more optimal UMULL sequences, and seems useful
in general.

Differential Revision: https://reviews.llvm.org/D140289
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/aarch64-dup-ext.ll
llvm/test/CodeGen/AArch64/aarch64-smull.ll
llvm/test/CodeGen/AArch64/dag-combine-trunc-build-vec.ll