Integrated: 8257806: Optimize x86 allTrue and anyTrue vector mask operations of Vector API
Sandhya Viswanathan
sviswanathan at openjdk.java.net
Thu Dec 10 04:35:33 UTC 2020
On Mon, 7 Dec 2020 02:09:56 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:
> The allTrue and anyTrue operations are implemented using ptest/vptest instruction.
> Two optimizations are possible:
>
> 1) The ptest instruction minimum size is 128 bit.
> Smaller < 128 bit size operations can be implemented by first broadcasting (duplicating) the input to 128 bits.
> The two inputs to these operations are:
> a) Vector mask being tested
> b) All ones
> For allTrue operation, both the inputs need to be broadcasted.
> For anyTrue operation, only the first input (vector mask) need to be broadcasted.
>
> 2) The anyTrue operation followed by comparison with zero can use the zero flag generated by ptest/vptest directly.
This pull request has now been integrated.
Changeset: 869dcb6f
Author: Sandhya Viswanathan <sviswanathan at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/869dcb6f
Stats: 149 lines in 3 files changed: 120 ins; 24 del; 5 mod
8257806: Optimize x86 allTrue and anyTrue vector mask operations of Vector API
Reviewed-by: kvn, psandoz
-------------
PR: https://git.openjdk.java.net/jdk/pull/1656
More information about the hotspot-compiler-dev
mailing list