Support following new vector permutation API:-
Declaration:-
Vector<E>.selectFrom(Vector<E> v1, Vector<E> v2)
Semantics:-
Using index values stored in the lanes of this vector, assemble values stored in first (v1) and second (v2) vector arguments. Thus, first and second vector serves as a table, whose elements are selected by indexes in the current vector. API is applicable to all integral and floating-point types. The result of this operation is semantically equivalent to expression v1.rearrange(this.toShuffle(), v2). Values held in index vector lanes must lie within valid two vector index range [0, 2*VLEN) else API throws an IndexOutOfBoundException.
Add necessary Java side implementation, C2 compiler IR and inline expander, in absence of direct two vector permutation instruction in target ISA, a lowering transformation dismantles new IR into constituent IR supported by target platforms.
Optimized x86 backend implementation for AVX512 and legacy targets.
Declaration:-
Vector<E>.selectFrom(Vector<E> v1, Vector<E> v2)
Semantics:-
Using index values stored in the lanes of this vector, assemble values stored in first (v1) and second (v2) vector arguments. Thus, first and second vector serves as a table, whose elements are selected by indexes in the current vector. API is applicable to all integral and floating-point types. The result of this operation is semantically equivalent to expression v1.rearrange(this.toShuffle(), v2). Values held in index vector lanes must lie within valid two vector index range [0, 2*VLEN) else API throws an IndexOutOfBoundException.
Add necessary Java side implementation, C2 compiler IR and inline expander, in absence of direct two vector permutation instruction in target ISA, a lowering transformation dismantles new IR into constituent IR supported by target platforms.
Optimized x86 backend implementation for AVX512 and legacy targets.
- csr for
-
JDK-8340338 Support two vector selectFrom API
- Closed
- relates to
-
JDK-8342439 Build failure after 8338023
- Closed
- links to
-
Commit(master) openjdk/jdk/709914fc
-
Review(master) openjdk/jdk/20508