[SVE] Add support for non-element-type sized scaling when lowering MGATHER/MSCATTER.
authorPaul Walker <paul.walker@arm.com>
Wed, 13 Apr 2022 00:14:40 +0000 (01:14 +0100)
committerPaul Walker <paul.walker@arm.com>
Thu, 14 Apr 2022 10:54:46 +0000 (11:54 +0100)
commit0c44115e5120167fc573e36dd878f4f95f5d63e6
tree44a82baf12a2a796d60da618c31a1a52c6d92438
parent2c14cdf831b677063a6518904b765c1f08d8557b
[SVE] Add support for non-element-type sized scaling when lowering MGATHER/MSCATTER.

The lowering code did not use the scale operand of MGATHER/MSCATTER
nodes, but instead assumed scaled indices were always scaled based
on the element type of the memory type. This patch adds the missing
support by rewritting the nodes as unscaled variants.

Differential Revision: https://reviews.llvm.org/D123670
llvm/include/llvm/CodeGen/ValueTypes.h
llvm/include/llvm/Support/MachineValueType.h
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-masked-gather.ll
llvm/test/CodeGen/AArch64/sve-masked-scatter.ll