Re: RFR: 8291118: [vectorapi] Optimize the implementation of lanewise FIRST_NONZERO

2022-08-03 Thread Eric Liu
On Fri, 29 Jul 2022 03:55:54 GMT, Xiaohong Gong wrote: > Vector API binary op "`FIRST_NONZERO`" represents the vector operation of "`a > != 0 ? a : b`", which can be implemented with existing APIs like "`compare + > blend`". The current implementation is more complex especially for the > float

Re: RFR: 8293409: [vectorapi] Intrinsify VectorSupport.indexVector

2022-10-11 Thread Eric Liu
On Mon, 19 Sep 2022 08:51:24 GMT, Xiaohong Gong wrote: > "`VectorSupport.indexVector()`" is used to compute a vector that contains the > index values based on a given vector and a scale value (`i.e. index = vec + > iota * scale`). This function is widely used in other APIs like > "`VectorMask.

Re: RFR: 8303762: [vectorapi] Intrinsification of Vector.slice [v6]

2023-04-12 Thread Eric Liu
On Tue, 4 Apr 2023 13:46:12 GMT, Quan Anh Mai wrote: >> `Vector::slice` is a method at the top-level class of the Vector API that >> concatenates the 2 inputs into an intermediate composite and extracts a >> window equal to the size of the inputs into the result. It is used in vector >> conver

Re: RFR: 8307795: AArch64: Optimize VectorMask.truecount() on Neon [v3]

2023-05-22 Thread Eric Liu
On Thu, 18 May 2023 09:50:13 GMT, Chang Peng wrote: >> In Vector API Java level, vector mask is represented as a boolean array with >> 0x00/0x01 (8 bits of each element) as values, aka in-memory format. When it >> is loaded into vector register, e.g. Neon, the in-memory format will be >> conve

Re: RFR: 8307795: AArch64: Optimize VectorMask.truecount() on Neon [v4]

2023-05-29 Thread Eric Liu
On Mon, 29 May 2023 02:20:07 GMT, Chang Peng wrote: >> In Vector API Java level, vector mask is represented as a boolean array with >> 0x00/0x01 (8 bits of each element) as values, aka in-memory format. When it >> is loaded into vector register, e.g. Neon, the in-memory format will be >> conve

Re: RFR: 8314544: Matrix multiple benchmark using Vector API [v2]

2023-09-08 Thread Eric Liu
On Mon, 21 Aug 2023 03:55:42 GMT, Martin Stypinski wrote: >> Added a bunch of different implementations for Vector API Matrix >> Multiplications: >> >> - Baseline >> - Blocked (Cache Local) >> - FMA >> - Vector API Simple Implementation >> - Vector API Blocked Implementation >> >> Commit was d

RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts

2023-11-14 Thread Eric Liu
Vector API defines zero-extend operations [1], which are going to be intrinsified and generated to `VectorUCastNode` by C2. This patch adds backend implementation for `VectorUCastNode` on AArch64. The micro benchmark shows significant performance improvement. In my test machine (SVE, 256-bit),

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v2]

2023-11-16 Thread Eric Liu
s. > > [TEST] > compiler/vectorapi and jdk/incubator/vector passed on NEON and SVE machines. > > [1] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java#L726 Eric Liu has updated the pull reque

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v2]

2023-11-16 Thread Eric Liu
On Wed, 15 Nov 2023 15:24:11 GMT, Andrew Haley wrote: >> Eric Liu has updated the pull request incrementally with one additional >> commit since the last revision: >> >> update m4 >> >> Change-Id: I82bf5f9384f79e09965a0498ad2de45cec6f0a29 > > sr

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v2]

2023-11-20 Thread Eric Liu
On Thu, 16 Nov 2023 08:59:09 GMT, Andrew Haley wrote: >> Eric Liu has updated the pull request incrementally with one additional >> commit since the last revision: >> >> update m4 >> >> Change-Id: I82bf5f9384f79e09965a0498ad2de45c

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v3]

2023-11-21 Thread Eric Liu
s. > > [TEST] > compiler/vectorapi and jdk/incubator/vector passed on NEON and SVE machines. > > [1] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java#L726 Eric Liu has updated the pull request increm

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v2]

2023-11-21 Thread Eric Liu
On Mon, 20 Nov 2023 09:26:43 GMT, Eric Liu wrote: >> src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 1415: >> >>> 1413: break; >>> 1414: case S: >>> 1415: (this->*unpklo)(dst, H, src); >> >> AS above: try makin

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v3]

2023-11-21 Thread Eric Liu
On Tue, 21 Nov 2023 15:07:48 GMT, Andrew Haley wrote: >> Eric Liu has updated the pull request incrementally with one additional >> commit since the last revision: >> >> add _sve_xunpk & remove dead code >> >> Change-Id: Ic19836feb8a73ea7e654

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v4]

2023-11-21 Thread Eric Liu
s. > > [TEST] > compiler/vectorapi and jdk/incubator/vector passed on NEON and SVE machines. > > [1] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java#L726 Eric Liu has updated the pull reque

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v2]

2023-11-21 Thread Eric Liu
On Tue, 21 Nov 2023 13:29:32 GMT, Eric Liu wrote: >> Got it. I will fix it soon. Thanks! > > compiler/vectorapi and jdk/incubator/vector passed. Full test is running. I > would report the result when it has been finished. Full jtreg passed without new failure. - PR

Re: RFR: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts [v4]

2023-11-29 Thread Eric Liu
On Wed, 22 Nov 2023 07:05:21 GMT, Eric Liu wrote: >> Vector API defines zero-extend operations [1], which are going to be >> intrinsified and generated to `VectorUCastNode` by C2. This patch adds >> backend implementation for `VectorUCastNode` on AArch64. >> >

Integrated: 8319872: AArch64: [vectorapi] Implementation of unsigned (zero extended) casts

2023-12-04 Thread Eric Liu
On Wed, 15 Nov 2023 07:48:28 GMT, Eric Liu wrote: > Vector API defines zero-extend operations [1], which are going to be > intrinsified and generated to `VectorUCastNode` by C2. This patch adds > backend implementation for `VectorUCastNode` on AArch64. > > The micro