On Wed, 16 Nov 2022 23:41:32 GMT, Volodymyr Paprotski <d...@openjdk.org> wrote:
>> 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!! done (Note: disassembler proof for vzeroall encoding 0x7fffed0022f8: vzeroall 0x7fffed0022fb: vpxorq zmm16,zmm16,zmm16 0x7fffed002301: vpxorq zmm17,zmm17,zmm17 0x7fffed002307: vpxorq zmm18,zmm18,zmm18 0x7fffed00230d: vpxorq zmm19,zmm19,zmm19 0x7fffed002313: vpxorq zmm20,zmm20,zmm20 0x7fffed002319: vpxorq zmm21,zmm21,zmm21 0x7fffed00231f: vpxorq zmm22,zmm22,zmm22 0x7fffed002325: vpxorq zmm23,zmm23,zmm23 0x7fffed00232b: vpxorq zmm24,zmm24,zmm24 0x7fffed002331: vpxorq zmm25,zmm25,zmm25 0x7fffed002337: vpxorq zmm26,zmm26,zmm26 0x7fffed00233d: vpxorq zmm27,zmm27,zmm27 0x7fffed002343: vpxorq zmm28,zmm28,zmm28 0x7fffed002349: vpxorq zmm29,zmm29,zmm29 0x7fffed00234f: vpxorq zmm30,zmm30,zmm30 0x7fffed002355: vpxorq zmm31,zmm31,zmm31 0x7fffed00235b: cmp ebx,0x10 0x7fffed00235e: jl 0x7fffed0023e6 ) ------------- PR: https://git.openjdk.org/jdk/pull/10582