On Wed, 16 Nov 2022 23:39:00 GMT, Vladimir Ivanov <[email protected]> wrote:
>> ah.. I remember thinking about doing that.. `vzeroall` isnt encoded yet and
>> I figured since I already have to do the xmm16-29, might as well do them
>> all.. should I add that instruction too?
>
> Yes, please. And for the upper half of register file, just code it as a loop
> over register range:
>
> for (int rxmm_num = 16; rxmm_num < 30; rxmm_num++) {
> XMMRegister rxmm = as_XMMRegister(rxmm_num);
> __ vpxorq(rxmm, rxmm, rxmm, Assembler::AVX_512bit);
> }
>
> or even
>
> // Zeroes zmm16-zmm31.
> for (XMMRegister rxmm = xmm16; rxmm->is_valid(); rxmm = rxmm->successor()) {
> __ vpxorq(rxmm, rxmm, rxmm, Assembler::AVX_512bit);
> }
Will do.. ("loop" erm.. wow.. "duh, this isn't assembler!") Thanks!!
-------------
PR: https://git.openjdk.org/jdk/pull/10582