[vectorIntrinsics+mask] RFR: 8274236: Cleanups related to X86 masking support.

Sandhya Viswanathan sviswanathan at openjdk.java.net
Thu Sep 23 22:56:03 UTC 2021


On Thu, 23 Sep 2021 20:14:32 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

> - Re-factor and cleanup existing VectorLoadMask, VectorStoreMask and CICS patterns (one source is memory operand).

src/hotspot/cpu/x86/x86.ad line 1498:

> 1496:     case Op_VectorStoreMask:
> 1497:     case Op_VectorBlend:
> 1498:       if (UseSSE < 3) {

This doesnt look correct. packusdw needs SSE4.  Also all the others in this case block need SSE4.

src/hotspot/cpu/x86/x86.ad line 7925:

> 7923:   predicate(Matcher::vector_length(n) <= 16 && n->in(1)->bottom_type()->isa_vectmask() == NULL);
> 7924:   match(Set dst (VectorStoreMask src size));
> 7925:   effect(TEMP_DEF dst);

The original storeMask2B didn't need TEMP dst and so was a separate rule.

src/hotspot/cpu/x86/x86.ad line 7948:

> 7946:   match(Set dst (VectorStoreMask src size));
> 7947:   format %{ "vector_store_mask $dst, $src \t! elem size is $size byte[s]" %}
> 7948:   effect(TEMP_DEF dst);

The original storeMask4B didn't need TEMP dst and so was a separate rule.

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

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


More information about the panama-dev mailing list