https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120284
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The documentation is clear there too: >From the page you linked: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Output-Operands "When using ‘=’, do not assume the location contains the existing value on entry to the asm, except when the operand is tied to an input; see Input Operands." https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#InputOperands : "Input constraints can also be digits (for example, "0"). This indicates that the specified input must be in the same place as the output constraint at the (zero-based) index in the output constraint list. When using asmSymbolicName syntax for the output operands, you may use these names (enclosed in brackets ‘[]’) instead of digits. "