[SVE][CodeGen] Legalisation of integer -> floating point conversions
commit75db7cf78ad5138e767b8d04c9a758009191ee0c
authorKerry McLaughlin <kerry.mclaughlin@arm.com>
Wed, 30 Sep 2020 09:55:51 +0000 (30 10:55 +0100)
committerKerry McLaughlin <kerry.mclaughlin@arm.com>
Thu, 1 Oct 2020 09:43:20 +0000 (1 10:43 +0100)
tree774b4c9d5b5dfb9479d57fb69c0b36eacc72b1e6
parent8931c3d682763e6129f8d05ebe4e3b8dcc3e08e2
[SVE][CodeGen] Legalisation of integer -> floating point conversions

Splitting the operand of a scalable [S|U]INT_TO_FP results in a
concat_vectors operation where the operands are unpacked FP
scalable vectors (e.g. nxv2f32).
This patch adds custom lowering of concat_vectors which
checks that the number of operands is 2, and isel patterns
to match concat_vectors of scalable FP types with uzp1.

Reviewed By: efriedma, paulwalker-arm

Differential Revision: https://reviews.llvm.org/D88033
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-split-fcvt.ll