简体   繁体   中英

Does vzeroall zero registers ymm16 to ymm31?

The documentation for vzeroall appears inconsistent. The prose says:

The instruction zeros contents of all XMM or YMM registers.

The pseudocode below that, however, indicates that in 64-bit mode only registers ymm0 through ymm15 are affected:

IF (64-bit mode)
    limit ←15
ELSE
    limit ← 7
FOR i in 0 .. limit:
    simd_reg_file[i][MAXVL-1:0] ← 0

On AVX-512 supporting machines clearing up to ymm15 is not the same as clearing "all" because ymm16 through ymm31 exist.

Is the prose or pseudocode correct?

It seems like it was a description issue, if you will look at the latest SDM you will see that description was changed lately and now it says that VZEROALL does not changing YMM16...YMM31.

英特尔最新 SDM(2019 年 10 月)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM