On Thu, 17 Apr 2025 18:08:21 GMT, Vladimir Ivanov <vliva...@openjdk.org> wrote:
>> Please see the `addr` definition code in >> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/vectorIntrinsics.cpp#L1877 >> . If queried `addr` returns `nullptr` for 256-bit vectors, and the arch >> supports scalable vector, then the `addr` will be assigned to the scalable >> ones. > > Ah, ok. Thanks for the pointer. I aligned lookup logic with existing > behavior. > > I'd like to double-check one things: is it fine to use scalable vector > variants for fixed-sized vector shapes of smaller size without any explicit > masking/stripping of upper vector part? Yes, it's fine for lanewise oeprations. For others like cross-lanes, stores and other operations, we will generate a predicate to strip the upper vector part. The op list that need the masking are listed here: https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/aarch64_vector.ad#L280 ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24462#discussion_r2049872110