[AArch64] Fix ldst-opt of multiple disjunct subregs.
authorFlorian Hahn <flo@fhahn.com>
Mon, 8 Jun 2020 18:25:14 +0000 (19:25 +0100)
committerFlorian Hahn <flo@fhahn.com>
Mon, 8 Jun 2020 19:18:24 +0000 (20:18 +0100)
commit1975ff9a0a982233a9a38812cd5228428020772f
tree5a5cd87fa9719e542e9f3845672c9e84d0ab2c8b
parentbb73d1b278eb478ca8e56153cf1469bf7eb13a3f
[AArch64] Fix ldst-opt of multiple disjunct subregs.

Currently aarch64-ldst-opt will incorrectly rename registers with
multiple disjunct subregisters (e.g. result of LD3). This patch updates
the canRenameUpToDef to bail out if it encounters such a register class
that contains the register to rename.

Fixes PR46105.

Reviewers: efriedma, dmgreen, paquette, t.p.northover

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D81108
llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
llvm/test/CodeGen/AArch64/stp-opt-with-renaming-ld3.mir