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 core-libs-dev mailing list