[SVE] Fix incorrect predicate for fixed length int/fp conversion.
authorPaul Walker <paul.walker@arm.com>
Fri, 11 Nov 2022 21:01:59 +0000 (21:01 +0000)
committerPaul Walker <paul.walker@arm.com>
Tue, 22 Nov 2022 14:40:12 +0000 (14:40 +0000)
commit44a18a8fce31bba99a346a28e937c93e485a912f
tree38416cec8ad2f9b1018ef4ed3ad6aae260125261
parentc08d3b08f6d71e974537de226c68d4c94c396a46
[SVE] Fix incorrect predicate for fixed length int/fp conversion.

When performing shrinking int/fp conversions the predicate should
be created to match the original fixed length vector type so the
unused lanes don't trigger side effects.

This patch also includes related refactoring to better detect such
issues and streamline the code a little.

Differential Revision: https://reviews.llvm.org/D138351
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-fixed-length-fp-to-int.ll
llvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll