[vectorIntrinsics] RFR: 8285013: AArch64: [vectorapi] Backend support of ExpandV for SVE2

Eric Liu eliu at openjdk.java.net
Thu Apr 28 03:16:34 UTC 2022


This patch adds the backend for Vector.expand(mask).

The basic idea is to use TBL which can shuffle the elements in the given
vector flexibly. HISTCNT is used to generate the second source input for
TBL whose value is used to select the indexed element from src vector.

The final code for an int vector is generated as below:


   mov z17.s, #0
   histcnt z17.s, p0/z, z17.s, z17.s
   sub z17.s, z17.s, #1
   tbl z17.s, {z16.s}, z17.s


As the HISTCNT instruction only supports element in size of 32/64 bits,
expanding of subword type is missing now.

-------------

Commit messages:
 - 8285013: AArch64: [vectorapi] Backend support of ExpandV for SVE2

Changes: https://git.openjdk.java.net/panama-vector/pull/198/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=198&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8285013
  Stats: 198 lines in 6 files changed: 91 ins; 0 del; 107 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/198.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/198/head:pull/198

PR: https://git.openjdk.java.net/panama-vector/pull/198


More information about the panama-dev mailing list