[vectorIntrinsics+mask] RFR: 8266287: Basic mask IR implementation for the Vector API masking feature support

Xiaohong Gong xgong at openjdk.java.net
Thu May 6 10:18:31 UTC 2021


Based on [1], this patch adds the C2 compiler mid-end changes for the masking feature support. It mainly contains:
 1) Generation of the mask IRs for vector mask, including:
    - Mask generations, e.g. load/compare/maskAll
    - Mask operations, e.g. and/or/xor
 2) Conversions between vector and mask after loading mask values from memory and before storing mask values into memory
 3) Generation of the vector IRs which need the mask value as the control
    - The mask value is appended to the original vector node's input list

With this change, the bottom type of the vector mask will be set to `"TypeVectMask"` if the platform supports the masking feature and the backend implementations are added.

Note that this patch only contains the compiler mid-end changes. The backend implementations for SVE/AVX-512 will be in the
followed-up patches.

[1] https://github.com/openjdk/panama-vector/pull/57

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

Commit messages:
 - 8266287: Basic mask IR implementation for the Vector API masking feature support

Changes: https://git.openjdk.java.net/panama-vector/pull/78/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=78&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8266287
  Stats: 500 lines in 13 files changed: 416 ins; 44 del; 40 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/78.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/78/head:pull/78

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


More information about the panama-dev mailing list