HomePhabricator

[ARM] Convert VDUPLANE to VDUP under MVE

Authored by dmgreen on Sat, May 9, 7:17 AM.

Description

[ARM] Convert VDUPLANE to VDUP under MVE

Unlike Neon, MVE does not have a way of duplicating from a vector lane,
so a VDUPLANE currently selects to a VDUP(move_from_lane(..)). This
forces that to be done earlier as a dag combine to allow other folds to
happen.

It converts to a VDUP(EXTRACT). On FP16 this is then folded to a
VGETLANEu to prevent it from creating a vmovx;vmovhr pair, using a
single move_from_reg instead.

Differential Revision: https://reviews.llvm.org/D79606

Details

Committed
dmgreenSat, May 9, 10:58 AM
Differential Revision
D79606: [ARM] Convert VDUPLANE to VDUP under MVE
Parents
rG0e49ac73eaf5: [NFC] Small rework to RenamerClangTidyCheck addUsage
Branches
Unknown
Tags
Unknown