RFR: 8266054: VectorAPI rotate operation optimization [v13]
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Tue Jul 27 18:34:43 UTC 2021
On Tue, 27 Jul 2021 18:05:49 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:
>> Correcting this, I2L may be needed in auto-vectorization flow since Integer/Long.rotate[Right/Left] APIs accept only integral shift, so for Long.rotate* operations integral shift value must be converted to long using I2L before broadcasting it. VectorAPI lanewise operations between vector-scalar, scalar type already matches with vector basic type. Since degeneration routine is common b/w both the flows so maintaining IR consistency here.
>
> For Vector API the shift is always coming in as int type for rotate by scalar (lanewiseShiftTemplate). The down conversion to byte or short needs to be done before scalar2vector.
I see that similar thing is done before for shift, so down conversion to sub type is not required.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3720
More information about the hotspot-compiler-dev
mailing list