[vectorIntrinsics] RFR: 8259604: Change the implementation of loadV_partial and storeV_partial in Aarch64-SVE backend

Wang Huang whuang at openjdk.java.net
Mon Jan 18 07:02:58 UTC 2021


Now, the implementation of `loadV_partial` is :
mov $tmp1, 0
mov $tmp2, vector_length
sve_whilelo $pTmp, $tmp1, $tmp2
sve_ldr $dst, $pTmp, $mem
However, we can encode register `zr` in instruction `sve_whilelo` instead of getting from the first mov instruction.

The new implementation is :
mov $tmp, vector_length
sve_whilelo $pTmp, zr, $tmp
sve_ldr $dst, $pTmp, $mem
>From this changing, we reduce a mov instruction and a temporary variable($tmp2 ).

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

Commit messages:
 - 8259604: Change the implementation of loadV_partial and storeV_partial in Aarch64-SVE backend

Changes: https://git.openjdk.java.net/panama-vector/pull/32/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=32&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8259604
  Stats: 36 lines in 2 files changed: 0 ins; 12 del; 24 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/32.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/32/head:pull/32

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


More information about the panama-dev mailing list