[AArch64][SVE] Fix extract_subvector patterns for unpacked fp types.
authorSander de Smalen <sander.desmalen@arm.com>
Tue, 28 Sep 2021 18:44:10 +0000 (19:44 +0100)
committerSander de Smalen <sander.desmalen@arm.com>
Wed, 29 Sep 2021 10:14:49 +0000 (11:14 +0100)
commit87bcbd61b5e60ed1f465cc276029be9f667162ba
tree6800682695d70a8cbff49f5272e850f0a1b31d86
parentd6216e2cd1a5e07f8509215ee5422ff5ee358da8
[AArch64][SVE] Fix extract_subvector patterns for unpacked fp types.

The patterns added in D110163 were incorrect, since it used the wrong
element widths for its shuffles.

Example for nxv2f16 extract_subvector(nxv8f16 %in, 6):
  <a|b|c|d|e|f|g|h>
               ^^^
           extract g and h.

  => UUNPKHI .h -> .s results in:
  <e  |f  |g  |h  >

  => UUNPKHI .s -> .d results in:
  <g      |h      >

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D110523
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll