OSDN Git Service

[SVE][CodeGen] Fix legalisation of floating-point masked gathers
authorKerry McLaughlin <kerry.mclaughlin@arm.com>
Mon, 11 Jan 2021 10:57:46 +0000 (10:57 +0000)
committerKerry McLaughlin <kerry.mclaughlin@arm.com>
Mon, 11 Jan 2021 10:57:46 +0000 (10:57 +0000)
commitc37f68a8885cf55e9a6603613a918c4e7474e9af
tree5e977dc10f144dba5b226850ef379b896ebe6f8d
parent675be651062476cd0cd4b491b35c275bb03d7b2c
[SVE][CodeGen] Fix legalisation of floating-point masked gathers

Changes in this patch:
- When lowering floating-point masked gathers, cast the result of the
  gather back to the original type with reinterpret_cast before returning.
- Added patterns for reinterpret_casts from integer to floating point, and
  concat_vector patterns for bfloat16.
- Tests for various legalisation scenarios with floating point types.

Reviewed By: sdesmalen, david-arm

Differential Revision: https://reviews.llvm.org/D94171
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll