[SVE] Refactor complex immediate pattern used by CPY/DUP.
authorPaul Walker <paul.walker@arm.com>
Wed, 23 Feb 2022 18:46:21 +0000 (18:46 +0000)
committerPaul Walker <paul.walker@arm.com>
Fri, 25 Feb 2022 16:12:35 +0000 (16:12 +0000)
commit7ab78f34cd3d90fda2c96ecdcca758617477c9ba
treed29851ffc954d1535bbf7606727d01640ea15c4f
parent96918f2af67f4edb6d6e987e03c0318ae04ba929
[SVE] Refactor complex immediate pattern used by CPY/DUP.

SelectSVE8BitLslImm didn't account for constant values that have a
larger bit width than the result vector's element type.  This only
seems to affect a single corner case when lowering fixed length
vectors but the code itself is also not consistent with how other
related complex patterns are implemented so I've taken the
opportunity to refactor the code.

Differential Revision: https://reviews.llvm.org/D120440
llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/sve-fixed-length-float-compares.ll