RFR: 8256973: Intrinsic creation for VectorMask query (lastTrue, firstTrue, trueCount) APIs [v4]
Jatin Bhateja
jbhateja at openjdk.java.net
Mon May 17 14:16:50 UTC 2021
On Mon, 17 May 2021 13:48:34 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> > Byte512Vector mandates the presence of AVX512BW as enforced by Matcher::match_rule_supported_vector()) thus removed the special code sequence for 512 bit vector in absence of AVX512BW feature.
>
> Please, elaborate why matters `Byte512Vector` here?
>
> Intrinsics are fed with corresponding vector element type, so unconditionally refecting AVX512F case (w/ BW & VL absent) means that on Xeon Phis `VectorMask.lastTrue/firstTrue/trueCont` on 512-bit masks are useless (irrespective of element type) while some 512-bit vector shapes are supported. Is it intended?
This is being enforced by Matcher::match_rule_supported_vector(), for a 512 bit vector of sub-word type is supported only if target supports AVX512BW.
For other types apart from sub-word types a 512 bit vector mask will be handled by the second instruction selection pattern which is predicated by !VM_Version::supports_avx512vlbw() since for them maximum vector size needed to hold the byte vector containing mask will always be <= 32 bytes.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3916
More information about the hotspot-compiler-dev
mailing list