I've been searching everywhere but maybe not asking the right question.
In asm output with SVE instructions, sometimes I see things like
ld1d z3.d, ....
and sometimes
ld1d {z3.d}, ....
What's the difference? Other use of {...} is for a list of source data registers, but here there's only one register and is the target.
thanks
Both forms are equivalent. The specification describes the instruction to use curly braces, e.g. https://developer.arm.com/documentation/ddi0602/2022-09/SVE-Instructions/LD1D--scalar-plus-scalar--single-register---Contiguous-load-unsigned-doublewords-to-vector--scalar-index--?lang=en, but for ld1d, the use of curly braces is optional and can be omitted because the list only contains a single vector. Clang chooses to emit assembly with curly braces, whereas GCC omits them. The assembler of both Clang and GCC will accept either form.
I suspected that was the case (singleton list), but wasn't sure. Thanks for the quick answer.