Adopt a more strict approach regarding what marks should/can appear after a destination register, when operating upon an AVX512 platform.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
test/MC/X86/avx512-err.s | ||
---|---|---|
10 | why is this error a true? |
test/MC/X86/avx512-err.s | ||
---|---|---|
10 | The error due to the misplacing of the rounding (rn-sae) mark (line 11). |
test/MC/X86/avx512-err.s | ||
---|---|---|
8 | So why this is an error? you mustn't have the {z} mask before the {rn-sae}. | |
10 | can you add also the intel syntax test since it is written in a different way? The location of the mask is the first and not the last. For example: and see that you are getting the same error when you insert |
test/MC/X86/avx512-err.s | ||
---|---|---|
8 | you don't must the {z} before the {rn-sae} |
test/MC/X86/avx512-err.s | ||
---|---|---|
8 | Examine the example you took out of the Spec: | |
10 | The code flow dictates that this added check will occur after any operand of an AVX512 instruction (more precisely - if this operand is followed by an alleged curly braces marks), so it catches both mischief conducted on Intel and GNU. In other words - it matters not whether the faulty occurs on the last/first operand |
So why this is an error? you mustn't have the {z} mask before the {rn-sae}.
Again according to the ISA section 2.5.4
https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
for example:
vaddps zmm7 {k6}, zmm2, zmm4, {rd-sae}