[vectorIntrinsics+compress] RFR: 8274889: Intrinsify Vector.expand/compress APIs for X86 [v5]
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Mon Oct 11 18:37:44 UTC 2021
On Mon, 11 Oct 2021 12:11:45 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> - Common C2 compiler entry point for compress/expand APIs.
>> - Inline expansion handling and C2 graph creation.
>> - For X86 current backed support is added for AVX512 which offers direct compress/expand instructions.
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>
> 8274889: Review comments resolution.
src/hotspot/cpu/x86/x86.ad line 8745:
> 8743: // --------------------------------- Compress/Expand Operations ---------------------------
> 8744:
> 8745: instruct vcompress_expand_reg(vec dst, vec src, kReg mask) %{
We could name this as evcompress_expand_reg (as it is for evex only).
src/hotspot/share/classfile/vmIntrinsics.hpp line 1097:
> 1095: do_signature(vector_comexp_op_sig, "(I" \
> 1096: "Ljava/lang/Class;" \
> 1097: "Ljava/lang/Class;Ljava/lang/Class;" \
Why two entries on one line here only?
src/hotspot/share/opto/vectorIntrinsics.cpp line 2710:
> 2708: elem_klass->const_oop() == NULL || !vlen->is_con()) {
> 2709: if (C->print_intrinsics()) {
> 2710: tty->print_cr(" ** missing constant: opr=%s vclass=%s mclass =%s etype=%s vlen=%s",
Why this change?
src/hotspot/share/opto/vectorIntrinsics.cpp line 2743:
> 2741: }
> 2742: return false;
> 2743: }
This check is there in unary op, binary op, etc. Should be kept for consistency?
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/146
More information about the panama-dev
mailing list