mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
clarify rules for .Z suffix and mask registers. See issue 57952.
parent
99f566f0ed
commit
87ecfa1a41
@ -80,11 +80,12 @@ This is effectively "no masking".
|
|||||||
`K1-K7` registers can be used to override default opmask.
|
`K1-K7` registers can be used to override default opmask.
|
||||||
`K` register should be placed right before destination operand.
|
`K` register should be placed right before destination operand.
|
||||||
|
|
||||||
Zeroing-masking can be activated with `Z` opcode suffix.
|
Zeroing-masking can be activated with `Z` opcode suffix. Zeroing-masking requires that a mask register other than K0 be specified.
|
||||||
|
|
||||||
For example, `VADDPD.Z (AX), Z30, K3, Z10` uses zeroing-masking and explicit `K` register.
|
For example, `VADDPD.Z (AX), Z30, K3, Z10` uses zeroing-masking and explicit `K` register.
|
||||||
- If `Z` opcode suffix is removed, it's merging-masking.
|
- If `Z` opcode suffix is removed, it's merging-masking with `K3` mask.
|
||||||
- If `K3` operand is removed, `K0` operand is implied.
|
- If `K3` operand is removed, it generates an assembler error.
|
||||||
|
- If both `Z` opcode suffix and `K3` operand are removed, it is merging-masking with `K0` mask.
|
||||||
|
|
||||||
It's compile-time error to use `K0` register for `{k1}` operands (consult [manuals](https://software.intel.com/en-us/articles/intel-sdm) for details).
|
It's compile-time error to use `K0` register for `{k1}` operands (consult [manuals](https://software.intel.com/en-us/articles/intel-sdm) for details).
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user