According to "Intel Architecture Instruction Set Extensions Programming
Reference" (319433-023, AUGUST 2015), the EVEX-encoded scalar arithmetic
instructions support embedded rounding, e.g.
VADDSS xmm1{k1}{z}, xmm2, xmm3/m32{er}
However, gas refuses to encode such instructions when both memory operand
and embedded rounding is specified. Repro:
.text
.intel_syntax noprefix
vaddsd xmm31{k7}, xmm30, xmm29, {rn-sae} # Compiles fine
vaddsd xmm31{k7}, xmm30, [rsi] # Compiles fine
vaddsd xmm31{k7}, xmm30, [rsi], {rn-sae} # Error: operand size mismatch for
`vaddsd'
I tried VADDSS/VADDSD/VSUBSS/VSUBSD/VMULSS/VMULSD, binutils 2.2.5 and the
upstream binutils from Git, they all exhibit this problem.
Regards,
Marat
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils